diff options
Diffstat (limited to 'avahi-common/simple-watch.c')
-rw-r--r-- | avahi-common/simple-watch.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/avahi-common/simple-watch.c b/avahi-common/simple-watch.c index 770cf4f..4bb763a 100644 --- a/avahi-common/simple-watch.c +++ b/avahi-common/simple-watch.c @@ -393,6 +393,17 @@ int avahi_simple_poll_iterate(AvahiSimplePoll *s, int timeout) { int t; AvahiUsec usec; + if (next_timeout->expiry.tv_sec == 0 && + next_timeout->expiry.tv_usec == 0) { + + /* Just a shortcut so that we don't need to call gettimeofday() */ + + /* The events poll() returned in the last call are now no longer valid */ + s->events_valid = 0; + return start_timeout_callback(next_timeout); + } + + gettimeofday(&now, NULL); usec = avahi_timeval_diff(&next_timeout->expiry, &now); |