From: Daniel P. Berrange Date: Fri, 11 Nov 2011 15:45:44 +0000 (+0000) Subject: Refactor code for enabling/disabling I/O callback in remote client X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=b196220337089ee653a01da66a4ae3aac5a3c3d0;p=people%2Fliuw%2Flibxenctrl-split%2Flibvirt.git Refactor code for enabling/disabling I/O callback in remote client * src/rpc/virnetclient.c: Add helper for setting I/O callback events --- diff --git a/src/rpc/virnetclient.c b/src/rpc/virnetclient.c index 95632cb03..b934230ec 100644 --- a/src/rpc/virnetclient.c +++ b/src/rpc/virnetclient.c @@ -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())