X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=lib%2Fpoll-loop.c;h=5e3618bb90e835e7d46bda08f4a25b00888c1e52;hb=0141e875a14cc30fe9c207a83616861055531d4d;hp=0f45d983541792c48f439f6fdd0096a0506177fa;hpb=5453ae2067671c0d40a5b3ac3cb3d4027bed6abb;p=sliver-openvswitch.git diff --git a/lib/poll-loop.c b/lib/poll-loop.c index 0f45d9835..5e3618bb9 100644 --- a/lib/poll-loop.c +++ b/lib/poll-loop.c @@ -26,6 +26,7 @@ #include "fatal-signal.h" #include "list.h" #include "ovs-thread.h" +#include "seq.h" #include "socket-util.h" #include "timeval.h" #include "vlog.h" @@ -225,6 +226,7 @@ poll_block(void) COVERAGE_INC(poll_zero_timeout); } + timewarp_wait(); retval = time_poll(loop->pollfds, loop->n_waiters, loop->timeout_when, &elapsed); if (retval < 0) { @@ -248,6 +250,8 @@ poll_block(void) /* Handle any pending signals before doing anything else. */ fatal_signal_run(); + + seq_woke(); } static void @@ -275,7 +279,7 @@ poll_loop(void) loop = pthread_getspecific(key); if (!loop) { loop = xzalloc(sizeof *loop); - pthread_setspecific(key, loop); + xpthread_setspecific(key, loop); } return loop; }