[libvirt] [PATCH 1/3] Convert daemon/virsh over to use primary event APIs, rather than impl

Daniel P. Berrange berrange at redhat.com
Thu Mar 3 14:21:49 UTC 2011


The daemon code calls virEventAddHandleImpl directly instead
of calling the wrapper virEventAddHandle.

* tools/console.c, daemon/libvirtd.c, daemon/mdns.c: Convert to
  use primary event APIs
---
 daemon/libvirtd.c |   47 ++++++++++++++++++++++++-----------------------
 daemon/mdns.c     |   27 ++++++++++++++-------------
 tools/console.c   |   31 ++++++++++++++++---------------
 3 files changed, 54 insertions(+), 51 deletions(-)

diff --git a/daemon/libvirtd.c b/daemon/libvirtd.c
index b2e5e20..851e2e1 100644
--- a/daemon/libvirtd.c
+++ b/daemon/libvirtd.c
@@ -63,6 +63,7 @@
 #include "remote_driver.h"
 #include "conf.h"
 #include "event.h"
+#include "src/util/event.h"
 #include "memory.h"
 #include "stream.h"
 #include "hooks.h"
@@ -1084,12 +1085,12 @@ static int qemudNetworkEnable(struct qemud_server *server) {
 
     sock = server->sockets;
     while (sock) {
-        if ((sock->watch = virEventAddHandleImpl(sock->fd,
-                                                 VIR_EVENT_HANDLE_READABLE |
-                                                 VIR_EVENT_HANDLE_ERROR |
-                                                 VIR_EVENT_HANDLE_HANGUP,
-                                                 qemudDispatchServerEvent,
-                                                 server, NULL)) < 0) {
+        if ((sock->watch = virEventAddHandle(sock->fd,
+                                             VIR_EVENT_HANDLE_READABLE |
+                                             VIR_EVENT_HANDLE_ERROR |
+                                             VIR_EVENT_HANDLE_HANGUP,
+                                             qemudDispatchServerEvent,
+                                             server, NULL)) < 0) {
             VIR_ERROR0(_("Failed to add server event callback"));
             return -1;
         }
@@ -1521,7 +1522,7 @@ error:
  */
 void qemudDispatchClientFailure(struct qemud_client *client) {
     if (client->watch != -1) {
-        virEventRemoveHandleImpl(client->watch);
+        virEventRemoveHandle(client->watch);
         client->watch = -1;
     }
 
@@ -2215,10 +2216,10 @@ int qemudRegisterClientEvent(struct qemud_server *server,
 
     mode = qemudCalculateHandleMode(client);
 
-    if ((client->watch = virEventAddHandleImpl(client->fd,
-                                               mode,
-                                               qemudDispatchClientEvent,
-                                               server, NULL)) < 0)
+    if ((client->watch = virEventAddHandle(client->fd,
+                                           mode,
+                                           qemudDispatchClientEvent,
+                                           server, NULL)) < 0)
         return -1;
 
     return 0;
@@ -2232,7 +2233,7 @@ void qemudUpdateClientEvent(struct qemud_client *client) {
 
     mode = qemudCalculateHandleMode(client);
 
-    virEventUpdateHandleImpl(client->watch, mode);
+    virEventUpdateHandle(client->watch, mode);
 }
 
 
@@ -2284,7 +2285,7 @@ static void qemudInactiveTimer(int timerid, void *data) {
     if (virStateActive() ||
         server->clients) {
         VIR_DEBUG0("Timer expired but still active, not shutting down");
-        virEventUpdateTimeoutImpl(timerid, -1);
+        virEventUpdateTimeout(timerid, -1);
     } else {
         VIR_DEBUG0("Timer expired and inactive, shutting down");
         server->quitEventThread = 1;
@@ -2327,9 +2328,9 @@ static void *qemudRunLoop(void *opaque) {
     virMutexLock(&server->lock);
 
     if (timeout > 0 &&
-        (timerid = virEventAddTimeoutImpl(-1,
-                                          qemudInactiveTimer,
-                                          server, NULL)) < 0) {
+        (timerid = virEventAddTimeout(-1,
+                                      qemudInactiveTimer,
+                                      server, NULL)) < 0) {
         VIR_ERROR0(_("Failed to register shutdown timeout"));
         return NULL;
     }
@@ -2358,14 +2359,14 @@ static void *qemudRunLoop(void *opaque) {
             if (timerActive) {
                 if (server->clients) {
                     VIR_DEBUG("Deactivating shutdown timer %d", timerid);
-                    virEventUpdateTimeoutImpl(timerid, -1);
+                    virEventUpdateTimeout(timerid, -1);
                     timerActive = 0;
                 }
             } else {
                 if (!virStateActive() &&
                     !server->clients) {
                     VIR_DEBUG("Activating shutdown timer %d", timerid);
-                    virEventUpdateTimeoutImpl(timerid, timeout * 1000);
+                    virEventUpdateTimeout(timerid, timeout * 1000);
                     timerActive = 1;
                 }
             }
@@ -2481,7 +2482,7 @@ static void qemudCleanup(struct qemud_server *server) {
     while (sock) {
         struct qemud_socket *next = sock->next;
         if (sock->watch)
-            virEventRemoveHandleImpl(sock->watch);
+            virEventRemoveHandle(sock->watch);
         VIR_FORCE_CLOSE(sock->fd);
 
         /* Unlink unix domain sockets which are not in
@@ -3022,10 +3023,10 @@ daemonSetupSignals(struct qemud_server *server)
     sig_action.sa_handler = SIG_IGN;
     sigaction(SIGPIPE, &sig_action, NULL);
 
-    if (virEventAddHandleImpl(sigpipe[0],
-                              VIR_EVENT_HANDLE_READABLE,
-                              qemudDispatchSignalEvent,
-                              server, NULL) < 0) {
+    if (virEventAddHandle(sigpipe[0],
+                          VIR_EVENT_HANDLE_READABLE,
+                          qemudDispatchSignalEvent,
+                          server, NULL) < 0) {
         VIR_ERROR0(_("Failed to register callback for signal pipe"));
         goto error;
     }
diff --git a/daemon/mdns.c b/daemon/mdns.c
index 8be3aa9..302141c 100644
--- a/daemon/mdns.c
+++ b/daemon/mdns.c
@@ -40,6 +40,7 @@
 #include "libvirtd.h"
 #include "mdns.h"
 #include "event.h"
+#include "src/util/event.h"
 #include "memory.h"
 
 #define AVAHI_DEBUG(fmt, ...) VIR_DEBUG(fmt, __VA_ARGS__)
@@ -257,10 +258,10 @@ static AvahiWatch *libvirtd_mdns_watch_new(const AvahiPoll *api ATTRIBUTE_UNUSED
 
     AVAHI_DEBUG("New handle %p FD %d Event %d", w, w->fd, event);
     hEvents = virPollEventToEventHandleType(event);
-    if ((w->watch = virEventAddHandleImpl(fd, hEvents,
-                                          libvirtd_mdns_watch_dispatch,
-                                          w,
-                                          libvirtd_mdns_watch_dofree)) < 0) {
+    if ((w->watch = virEventAddHandle(fd, hEvents,
+                                      libvirtd_mdns_watch_dispatch,
+                                      w,
+                                      libvirtd_mdns_watch_dofree)) < 0) {
         VIR_FREE(w);
         return NULL;
     }
@@ -271,7 +272,7 @@ static AvahiWatch *libvirtd_mdns_watch_new(const AvahiPoll *api ATTRIBUTE_UNUSED
 static void libvirtd_mdns_watch_update(AvahiWatch *w, AvahiWatchEvent event)
 {
     AVAHI_DEBUG("Update handle %p FD %d Event %d", w, w->fd, event);
-    virEventUpdateHandleImpl(w->watch, event);
+    virEventUpdateHandle(w->watch, event);
 }
 
 static AvahiWatchEvent libvirtd_mdns_watch_get_events(AvahiWatch *w)
@@ -283,14 +284,14 @@ static AvahiWatchEvent libvirtd_mdns_watch_get_events(AvahiWatch *w)
 static void libvirtd_mdns_watch_free(AvahiWatch *w)
 {
     AVAHI_DEBUG("Free handle %p %d", w, w->fd);
-    virEventRemoveHandleImpl(w->watch);
+    virEventRemoveHandle(w->watch);
 }
 
 static void libvirtd_mdns_timeout_dispatch(int timer ATTRIBUTE_UNUSED, void *opaque)
 {
     AvahiTimeout *t = (AvahiTimeout*)opaque;
     AVAHI_DEBUG("Dispatch timeout %p %d", t, timer);
-    virEventUpdateTimeoutImpl(t->timer, -1);
+    virEventUpdateTimeout(t->timer, -1);
     t->callback(t, t->userdata);
 }
 
@@ -329,10 +330,10 @@ static AvahiTimeout *libvirtd_mdns_timeout_new(const AvahiPoll *api ATTRIBUTE_UN
         timeout = -1;
     }
 
-    t->timer = virEventAddTimeoutImpl(timeout,
-                                      libvirtd_mdns_timeout_dispatch,
-                                      t,
-                                      libvirtd_mdns_timeout_dofree);
+    t->timer = virEventAddTimeout(timeout,
+                                  libvirtd_mdns_timeout_dispatch,
+                                  t,
+                                  libvirtd_mdns_timeout_dofree);
     t->callback = cb;
     t->userdata = userdata;
 
@@ -364,13 +365,13 @@ static void libvirtd_mdns_timeout_update(AvahiTimeout *t, const struct timeval *
         timeout = -1;
     }
 
-    virEventUpdateTimeoutImpl(t->timer, timeout);
+    virEventUpdateTimeout(t->timer, timeout);
 }
 
 static void libvirtd_mdns_timeout_free(AvahiTimeout *t)
 {
     AVAHI_DEBUG("Free timeout %p", t);
-    virEventRemoveTimeoutImpl(t->timer);
+    virEventRemoveTimeout(t->timer);
 }
 
 
diff --git a/tools/console.c b/tools/console.c
index 224cf03..48a469e 100644
--- a/tools/console.c
+++ b/tools/console.c
@@ -44,6 +44,7 @@
 # include "virterror_internal.h"
 
 # include "daemon/event.h"
+# include "src/util/event.h"
 
 /* ie  Ctrl-]  as per telnet */
 # define CTRL_CLOSE_BRACKET '\35'
@@ -93,9 +94,9 @@ virConsoleShutdown(virConsolePtr con)
     con->quit = true;
     virStreamEventRemoveCallback(con->st);
     if (con->stdinWatch != -1)
-        virEventRemoveHandleImpl(con->stdinWatch);
+        virEventRemoveHandle(con->stdinWatch);
     if (con->stdinWatch != -1)
-        virEventRemoveHandleImpl(con->stdoutWatch);
+        virEventRemoveHandle(con->stdoutWatch);
     con->stdinWatch = -1;
     con->stdoutWatch = -1;
 }
@@ -134,8 +135,8 @@ virConsoleEventOnStream(virStreamPtr st,
         }
         con->streamToTerminal.offset += got;
         if (con->streamToTerminal.offset)
-            virEventUpdateHandleImpl(con->stdoutWatch,
-                                     VIR_EVENT_HANDLE_WRITABLE);
+            virEventUpdateHandle(con->stdoutWatch,
+                                 VIR_EVENT_HANDLE_WRITABLE);
     }
 
     if (events & VIR_STREAM_EVENT_WRITABLE &&
@@ -266,7 +267,7 @@ virConsoleEventOnStdout(int watch ATTRIBUTE_UNUSED,
     }
 
     if (!con->streamToTerminal.offset)
-        virEventUpdateHandleImpl(con->stdoutWatch, 0);
+        virEventUpdateHandle(con->stdoutWatch, 0);
 
     if (events & VIR_EVENT_HANDLE_ERROR ||
         events & VIR_EVENT_HANDLE_HANGUP) {
@@ -331,16 +332,16 @@ int vshRunConsole(virDomainPtr dom, const char *devname)
     if (virDomainOpenConsole(dom, devname, con->st, 0) < 0)
         goto cleanup;
 
-    con->stdinWatch = virEventAddHandleImpl(STDIN_FILENO,
-                                            VIR_EVENT_HANDLE_READABLE,
-                                            virConsoleEventOnStdin,
-                                            con,
-                                            NULL);
-    con->stdoutWatch = virEventAddHandleImpl(STDOUT_FILENO,
-                                             0,
-                                             virConsoleEventOnStdout,
-                                             con,
-                                             NULL);
+    con->stdinWatch = virEventAddHandle(STDIN_FILENO,
+                                        VIR_EVENT_HANDLE_READABLE,
+                                        virConsoleEventOnStdin,
+                                        con,
+                                        NULL);
+    con->stdoutWatch = virEventAddHandle(STDOUT_FILENO,
+                                         0,
+                                         virConsoleEventOnStdout,
+                                         con,
+                                         NULL);
 
     virStreamEventAddCallback(con->st,
                               VIR_STREAM_EVENT_READABLE,
-- 
1.7.4




More information about the libvir-list mailing list