]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/socketengines/socketengine_select.cpp
Flexible SendQ
[user/henk/code/inspircd.git] / src / socketengines / socketengine_select.cpp
index f089fd698c9a5a228eaf4e47f9a04347d67b137e..eacfc0fbf1be46e0e871a66c020a98cca7e5d52a 100644 (file)
@@ -89,7 +89,7 @@ int SelectEngine::DispatchEvents()
                int state = eh->GetEventMask();
                if (state & (FD_WANT_POLL_READ | FD_WANT_FAST_READ))
                        FD_SET (i, &rfdset);
-               if (state & (FD_WANT_POLL_WRITE | FD_WANT_FAST_WRITE))
+               if (state & (FD_WANT_POLL_WRITE | FD_WANT_FAST_WRITE | FD_WANT_SINGLE_WRITE))
                        FD_SET (i, &wfdset);
                FD_SET (i, &errfdset);
        }
@@ -134,7 +134,7 @@ int SelectEngine::DispatchEvents()
                                if (FD_ISSET (i, &wfdset))
                                {
                                        WriteEvents++;
-                                       SetEventMask(eh, eh->GetEventMask() & ~FD_WRITE_WILL_BLOCK);
+                                       SetEventMask(eh, eh->GetEventMask() & ~(FD_WRITE_WILL_BLOCK | FD_WANT_SINGLE_WRITE));
                                        ev->HandleEvent(EVENT_WRITE);
                                }
                        }