summaryrefslogtreecommitdiffstats
path: root/avahi-common/simple-watch.c
diff options
context:
space:
mode:
Diffstat (limited to 'avahi-common/simple-watch.c')
-rw-r--r--avahi-common/simple-watch.c11
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);