diff options
-rw-r--r-- | ev.pod | 8 |
1 files changed, 8 insertions, 0 deletions
@@ -277,6 +277,10 @@ flags. If that is troubling you, check C<ev_backend ()> afterwards). If you don't know what event loop to use, use the one returned from this function. +Note that this function is I<not> thread-safe, so if you want to use it +from multiple threads, you have to lock (note also that this is unlikely, +as loops cannot bes hared easily between threads anyway). + The default loop is the only loop that can handle C<ev_signal> and C<ev_child> watchers, and to do this, it always registers a handler for C<SIGCHLD>. If this is a problem for your app you can either @@ -468,6 +472,10 @@ always distinct from the default loop. Unlike the default loop, it cannot handle signal and child watchers, and attempts to do so will be greeted by undefined behaviour (or a failed assertion if assertions are enabled). +Note that this function I<is> thread-safe, and the recommended way to use +libev with threads is indeed to create one loop per thread, and using the +default loop in the "main" or "initial" thread. + Example: Try to create a event loop that uses epoll and nothing else. struct ev_loop *epoller = ev_loop_new (EVBACKEND_EPOLL | EVFLAG_NOENV); |