]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
mainloop: add lxc_mainloop_add_handler_events
authorWolfgang Bumiller <w.bumiller@proxmox.com>
Fri, 15 May 2020 13:06:38 +0000 (15:06 +0200)
committerWolfgang Bumiller <w.bumiller@proxmox.com>
Fri, 15 May 2020 13:06:39 +0000 (15:06 +0200)
in order to be able to listen for EPOLLPRI

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
src/lxc/mainloop.c
src/lxc/mainloop.h

index 6d4c5935ae005332b1e4cd729364ef155b701218..d5ae2a67a09d54b4305260d356d4b97de672060b 100644 (file)
@@ -59,8 +59,10 @@ int lxc_mainloop(struct lxc_epoll_descr *descr, int timeout_ms)
        }
 }
 
-int lxc_mainloop_add_handler(struct lxc_epoll_descr *descr, int fd,
-                            lxc_mainloop_callback_t callback, void *data)
+int lxc_mainloop_add_handler_events(struct lxc_epoll_descr *descr, int fd,
+                                   int events,
+                                   lxc_mainloop_callback_t callback,
+                                   void *data)
 {
        __do_free struct mainloop_handler *handler = NULL;
        __do_free struct lxc_list *item = NULL;
@@ -77,7 +79,7 @@ int lxc_mainloop_add_handler(struct lxc_epoll_descr *descr, int fd,
        handler->fd = fd;
        handler->data = data;
 
-       ev.events = EPOLLIN;
+       ev.events = events;
        ev.data.ptr = handler;
 
        if (epoll_ctl(descr->epfd, EPOLL_CTL_ADD, fd, &ev) < 0)
@@ -92,6 +94,13 @@ int lxc_mainloop_add_handler(struct lxc_epoll_descr *descr, int fd,
        return 0;
 }
 
+int lxc_mainloop_add_handler(struct lxc_epoll_descr *descr, int fd,
+                            lxc_mainloop_callback_t callback, void *data)
+{
+       return lxc_mainloop_add_handler_events(descr, fd, EPOLLIN, callback,
+                                              data);
+}
+
 int lxc_mainloop_del_handler(struct lxc_epoll_descr *descr, int fd)
 {
        struct mainloop_handler *handler;
index 8afac60d35e8552857c608f2644619231f9c246a..e6ab9a6d9e93eb870c178c49fc68e1804c0917d1 100644 (file)
@@ -22,6 +22,10 @@ typedef int (*lxc_mainloop_callback_t)(int fd, uint32_t event, void *data,
 
 extern int lxc_mainloop(struct lxc_epoll_descr *descr, int timeout_ms);
 
+extern int lxc_mainloop_add_handler_events(struct lxc_epoll_descr *descr,
+                                          int fd, int events,
+                                          lxc_mainloop_callback_t callback,
+                                          void *data);
 extern int lxc_mainloop_add_handler(struct lxc_epoll_descr *descr, int fd,
                                    lxc_mainloop_callback_t callback,
                                    void *data);