EVENT_CLIENT: when handing over to the DB-Queue, don't re-start IO-Watchers.
authorWilfried Goesgens <dothebart@citadel.org>
Sat, 2 Mar 2013 14:35:30 +0000 (15:35 +0100)
committerWilfried Goesgens <dothebart@citadel.org>
Sat, 2 Mar 2013 14:35:30 +0000 (15:35 +0100)
citadel/event_client.c

index 37dcb9e46aeda46caacafc57067d201e2c986262..c633f5357a1e845520eec5d9eee2a8f86439e696 100644 (file)
@@ -370,7 +370,22 @@ void PostInbound(AsyncIO *IO)
        case eSendMore:
                assert(IO->SendDone);
                IO->NextState = IO->SendDone(IO);
-               ev_io_start(event_base, &IO->send_event);
+               switch (IO->NextState)
+               {
+               case eSendFile:
+               case eSendReply:
+               case eSendMore:
+               case eReadMessage:
+               case eReadPayload:
+               case eReadMore:
+               case eReadFile:
+                       ev_io_start(event_base, &IO->send_event);
+                       break;
+               case eDBQuery:
+                       StopClientWatchers(IO, 0);
+               default:
+                       break;
+               }
                break;
        case eReadPayload:
        case eReadMore: