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-Tag: v0.9.8-rc1~181 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b196220337089ee653a01da66a4ae3aac5a3c3d0;p=thirdparty%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 95632cb03b..b934230ec0 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())