相关疑难解决方法(0)

可以运行多个主循环?

我正在使用libfuse和glib事件接口,我遇到了一个问题,我需要同时运行多个主循环(glib g_main_loop_runfuse_loop_mt).

我已经尝试在辅助上下文下为glib的事件循环创建一个分离的线程,例如:

static void *
event_loop(void *arg)
{
  GMainLoop *event_loop;
  GMainContext *context;    

  context = g_main_context_new();
  g_main_context_push_thread_default(context);
  event_loop = g_main_loop_new(context, FALSE);
  g_main_loop_run(event_loop);

  return NULL;
}

...

pthread_t event_thread;
pthread_attr_t thread_attr;
pthread_attr_init(&thread_attr);
pthread_attr_setdetachstate(&thread_attr, PTHREAD_CREATE_DETACHED);
event_thread = pthread_create(&event_thread, &thread_attr,
    event_loop, NULL);
Run Code Online (Sandbox Code Playgroud)

但是,glib事件循环不会接收任何触发的事件.我在这里完全偏离基地吗?解决多个主循环的正确方法是什么?

c glib fuse event-loop

7
推荐指数
2
解决办法
6100
查看次数

标签 统计

c ×1

event-loop ×1

fuse ×1

glib ×1