+finish:
+ s->prepared_timeout = timeout;
+ s->state = STATE_PREPARED;
+ return 0;
+}
+
+int avahi_simple_poll_run(AvahiSimplePoll *s) {
+ assert(s);
+ assert(s->state == STATE_PREPARED);
+
+ s->state = STATE_RUNNING;
+
+ if (s->prepared_timeout != 0) {
+
+ if (s->poll_func(s->pollfds, s->n_pollfds, s->prepared_timeout, s->poll_func_userdata) < 0) {
+ s->state = STATE_FAILURE;
+ return -1;
+ }
+
+ /* The poll events are now valid again */
+ s->events_valid = 1;
+ } else
+ s->events_valid = 0;
+
+ /* Update state */
+ s->state = STATE_RAN;
+ return 0;
+}
+
+int avahi_simple_poll_dispatch(AvahiSimplePoll *s) {
+ AvahiTimeout *next_timeout;
+ AvahiWatch *w;