From b196220337089ee653a01da66a4ae3aac5a3c3d0 Mon Sep 17 00:00:00 2001 From: "Daniel P. Berrange" Date: Fri, 11 Nov 2011 15:45:44 +0000 Subject: [PATCH] Refactor code for enabling/disabling I/O callback in remote client * src/rpc/virnetclient.c: Add helper for setting I/O callback events --- src/rpc/virnetclient.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) 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())