]> git.ozlabs.org Git - petitboot/blobdiff - lib/waiter/waiter.c
ui/ncurses: Add help facility to text screens
[petitboot] / lib / waiter / waiter.c
index 13b0d68fc05ac6a32a03aea748377d0da03c226e..d684348f4fc9566be5bc6ab9023793b169e5580f 100644 (file)
@@ -3,6 +3,7 @@
 #include <stdbool.h>
 #include <string.h>
 #include <assert.h>
+#include <errno.h>
 #include <sys/time.h>
 
 #include <talloc/talloc.h>
@@ -57,16 +58,11 @@ struct waitset *waitset_create(void *ctx)
        return set;
 }
 
-void waitset_destroy(struct waitset *set)
-{
-       talloc_free(set);
-}
-
 static struct waiter *waiter_new(struct waitset *set)
 {
        struct waiter **waiters, *waiter;
 
-       waiter = talloc(set->waiters, struct waiter);
+       waiter = talloc(set, struct waiter);
        if (!waiter)
                return NULL;
 
@@ -227,11 +223,13 @@ int waiter_poll(struct waitset *set)
                timeout_ms = -1;
        }
 
-
        rc = poll(set->pollfds, set->n_io_waiters, timeout_ms);
 
-       if (rc < 0)
+       if (rc < 0) {
+               if (errno == EINTR)
+                       rc = 0;
                goto out;
+       }
 
        for (i = 0; i < set->n_io_waiters; i++) {
                struct waiter *waiter = set->io_waiters[i];