g_main_loop,fork,threads

时间:2016-01-18 14:13:49

标签: c multithreading exec fork glib

我认为这是一个简单的问题,但到目前为止我无法在互联网上找到所需的答案。

我脑子里有一个伪代码如下:

main() {
    loop = g_main_loop;

    main_loop_callback(keyboard_cb, keyboard input);

    g_main_loop_run(loop);
}

我的回调函数将是这样的:

keyboard_cb {
    start_process(./rtsp_server "port / mountPoint / input");
}

我想要开始的过程是这样的:

main {
    loop = g_main_loop;

    rtsp_server(port, mountPoint, input);

    g_main_loop_run(loop);
}

我已经有了一个rtsp服务器代码,可以按照我想要的方式完美运行。但是,我不确定如何从另一个C程序调用此程序。我首先想要使用fork但是,它在参考手册中写道g_main_loopfork不兼容,我应该使用exec()

这可以用exec()吗?

g_main_loops是否会互相混淆,因为它们都使用默认上下文?

考虑到我可能会创建一些任意数量的rtsp_servers,并且每个rtsp_server都有自己的g_main_loop,我创建第一台服务器后会exec()被卡住吗?我是否需要keyboard_cb内的线程以便它不会被卡住?

0 个答案:

没有答案