Macos 如何在自定义轮询函数中组合mac事件处理和gobject事件?

Macos 如何在自定义轮询函数中组合mac事件处理和gobject事件?,macos,gobject,clutter,Macos,Gobject,Clutter,我正在尝试修复一个自定义轮询函数(请参阅)。 它来自的OSX后端代码。 设置如下: void _clutter_events_osx_init (void) { g_assert (old_poll_func == NULL); old_poll_func = g_main_context_get_poll_func (NULL); g_main_context_set_poll_func (NULL, clutter_event_osx_poll_func); } void _

我正在尝试修复一个自定义轮询函数(请参阅)。 它来自的OSX后端代码。 设置如下:

void
_clutter_events_osx_init (void)
{
  g_assert (old_poll_func == NULL);

  old_poll_func = g_main_context_get_poll_func (NULL);
  g_main_context_set_poll_func (NULL, clutter_event_osx_poll_func);
}

void
_clutter_events_osx_uninit (void)
{
  if (old_poll_func)
    {
      g_main_context_set_poll_func (NULL, old_poll_func);
      old_poll_func = NULL;
    }
}

它从套接字获取事件并将其转发到本机mac os x应用程序。问题是我希望libsoup正确处理libsoup库事件,这就是为什么我需要使用old_poll_func()的行为。但我不知道如何过滤非杂波事件,也不知道如何仅对它们使用旧的轮询功能。

我认为没有简单的方法可以绕过当前杂波中主循环集成的限制

我们应该看看gdk/quartz中的mainloop集成,我相信它能够正确地处理libsoup等。将gdk代码修改为杂乱无章的代码应该很简单,只是很耗时