]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/socketengines/socketengine_select.cpp
Update wiki links to use HTTPS and point to the correct pages.
[user/henk/code/inspircd.git] / src / socketengines / socketengine_select.cpp
index eba54a7cb27b1dd8e42dfa82faf8e6ffe225532e..0b5abaf304792b6d14978992ec1aa53d1cb77b86 100644 (file)
@@ -132,7 +132,9 @@ void SelectEngine::OnSetEvent(EventHandler* eh, int old_mask, int new_mask)
 
 int SelectEngine::DispatchEvents()
 {
-       static timeval tval = { 1, 0 };
+       timeval tval;
+       tval.tv_sec = 1;
+       tval.tv_usec = 0;
 
        fd_set rfdset = ReadSet, wfdset = WriteSet, errfdset = ErrSet;
 
@@ -179,7 +181,9 @@ int SelectEngine::DispatchEvents()
                        if (has_write)
                        {
                                WriteEvents++;
-                               SetEventMask(ev, ev->GetEventMask() & ~(FD_WRITE_WILL_BLOCK | FD_WANT_SINGLE_WRITE));
+                               int newmask = (ev->GetEventMask() & ~(FD_WRITE_WILL_BLOCK | FD_WANT_SINGLE_WRITE));
+                               this->OnSetEvent(ev, ev->GetEventMask(), newmask);
+                               SetEventMask(ev, newmask);
                                ev->HandleEvent(EVENT_WRITE);
                        }
                }