【发布时间】:2012-08-01 11:32:29
【问题描述】:
我正在学习libev。
但我不了解ev_loop 的ev_default_fork 标志。
这是关闭执行的问题吗?喜欢FD_CLOEXEC fcntl() 标志吗?
什么时候需要设置标志?什么情况下需要这个标志?
这是对文档的描述:
此函数设置一个标志,导致后续的 ev_loop 迭代 重新初始化具有内核状态的后端的内核状态。尽管 名字,你可以随时调用它,但它在之后最有意义 分叉,在子进程中(或子进程和父进程,但又一次 毫无意义)。在使用任何一个之前,您必须在孩子中调用它 libevfunctions,它只会在下一个 ev_loop 生效 迭代。
另一方面,你只需要在 childprocess 当且仅当您想在 孩子。如果你只是 fork+exec,你根本不需要调用它。
函数本身速度很快,通常不会有问题 callit 以防万一后叉。为方便起见,该函数将 非常适合调用 pthread_atfork:pthread_atfork (0, 0, ev_default_fork);
【问题讨论】: