+
+ int mask = eh->GetEventMask();
+ if (ev.events & EPOLLIN)
+ mask &= ~FD_READ_WILL_BLOCK;
+ if (ev.events & EPOLLOUT)
+ {
+ mask &= ~FD_WRITE_WILL_BLOCK;
+ if (mask & FD_WANT_SINGLE_WRITE)
+ {
+ int nm = mask & ~FD_WANT_SINGLE_WRITE;
+ OnSetEvent(eh, mask, nm);
+ mask = nm;
+ }
+ }
+ eh->SetEventMask(mask);
+ if (ev.events & EPOLLIN)