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:36:43 +0000 (15:36 +0100)
citadel/event_client.c

index 35581e516b37022ef18b602117fb0c63d60e3acd..d888aa1698c8071f09f8b23ba9c61844071a3b66 100644 (file)
@@ -369,7 +369,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: