X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=lib%2Fpoll-loop.h;h=412bd09d40ce021530a870fe8b0ac4a25ed2ab15;hb=0ef165ecb57943e17a8ee8270df68ffb8d032e29;hp=6614ebe58f7a3a81e2600f9514f3bc3d24629823;hpb=2c06a96604516d28511fe74ebd9bf1a809834222;p=sliver-openvswitch.git diff --git a/lib/poll-loop.h b/lib/poll-loop.h index 6614ebe58..412bd09d4 100644 --- a/lib/poll-loop.h +++ b/lib/poll-loop.h @@ -44,25 +44,28 @@ extern "C" { /* Schedule events to wake up the following poll_block(). * * The poll_loop logs the 'where' argument to each function at "debug" level - * when an event causes a wakeup. Ordinarily, it is automatically filled in - * with the location in the source of the call, and the caller should therefore - * omit it. But, if the function you are implementing is very generic, so that - * its location in the source would not be very helpful for debugging, you can - * avoid the macro expansion and pass a different argument, e.g.: - * (poll_fd_wait)(fd, events, where); - * See timer_wait() for an example. - */ -void poll_fd_wait(int fd, short int events, const char *where); -#define poll_fd_wait(fd, events) poll_fd_wait(fd, events, SOURCE_LOCATOR) + * when an event causes a wakeup. Each of these ways to schedule an event has + * a function and a macro wrapper. The macro version automatically supplies + * the source code location of the caller. The function version allows the + * caller to supply a location explicitly, which is useful if the caller's own + * caller would be more useful in log output. See timer_wait_at() for an + * example. */ +void poll_fd_wait_at(int fd, HANDLE wevent, short int events, const char *where); +#ifndef _WIN32 +#define poll_fd_wait(fd, events) poll_fd_wait_at(fd, 0, events, SOURCE_LOCATOR) +#endif +#define poll_fd_wait_event(fd, wevent, events) \ + poll_fd_wait_at(fd, wevent, events, SOURCE_LOCATOR) -void poll_timer_wait(long long int msec, const char *where); -#define poll_timer_wait(msec) poll_timer_wait(msec, SOURCE_LOCATOR) +void poll_timer_wait_at(long long int msec, const char *where); +#define poll_timer_wait(msec) poll_timer_wait_at(msec, SOURCE_LOCATOR) -void poll_timer_wait_until(long long int msec, const char *where); -#define poll_timer_wait_until(msec) poll_timer_wait_until(msec, SOURCE_LOCATOR) +void poll_timer_wait_until_at(long long int msec, const char *where); +#define poll_timer_wait_until(msec) \ + poll_timer_wait_until_at(msec, SOURCE_LOCATOR) -void poll_immediate_wake(const char *where); -#define poll_immediate_wake() poll_immediate_wake(SOURCE_LOCATOR) +void poll_immediate_wake_at(const char *where); +#define poll_immediate_wake() poll_immediate_wake_at(SOURCE_LOCATOR) /* Wait until an event occurs. */ void poll_block(void);