]> xenbits.xensource.com Git - libvirt.git/commitdiff
Refactor code for enabling/disabling I/O callback in remote client
authorDaniel P. Berrange <berrange@redhat.com>
Fri, 11 Nov 2011 15:45:44 +0000 (15:45 +0000)
committerDaniel P. Berrange <berrange@redhat.com>
Wed, 16 Nov 2011 10:48:47 +0000 (10:48 +0000)
* src/rpc/virnetclient.c: Add helper for setting I/O callback events

src/rpc/virnetclient.c

index 95632cb03bbc80bfe8e27b7ee544e423f30de1c7..b934230ec03dbafb67211962e1fe880c98223676 100644 (file)
@@ -1176,6 +1176,17 @@ error:
 }
 
 
+static void virNetClientIOUpdateCallback(virNetClientPtr client,
+                                         bool enableCallback)
+{
+    int events = 0;
+    if (enableCallback)
+        events |= VIR_EVENT_HANDLE_READABLE;
+
+    virNetSocketUpdateIOCallback(client->sock, events);
+}
+
+
 /*
  * This function sends a message to remote server and awaits a reply
  *
@@ -1284,12 +1295,12 @@ static int virNetClientIO(virNetClientPtr client,
      * cause the event loop thread to be blocked on the
      * mutex for the duration of the call
      */
-    virNetSocketUpdateIOCallback(client->sock, 0);
+    virNetClientIOUpdateCallback(client, false);
 
     virResetLastError();
     rv = virNetClientIOEventLoop(client, thiscall);
 
-    virNetSocketUpdateIOCallback(client->sock, VIR_EVENT_HANDLE_READABLE);
+    virNetClientIOUpdateCallback(client, true);
 
     if (rv == 0 &&
         virGetLastError())