Mercurial > hg > nginx-quic
view src/event/modules/ngx_overlapped_module.c @ 424:84c527908237
nginx-0.0.10-2004-09-14-09:45:22 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Tue, 14 Sep 2004 05:45:22 +0000 |
parents | d220029ac7f3 |
children |
line wrap: on
line source
event = WSACreateEvent(void); WSAEventSelect(s, event, FD_ACCEPT); int ngx_overlapped_process_events(ngx_log_t *log) { if (acceptex) n = SleepEx(timer, 1); else n = WSAWaitForMultipleEvents(nevents, events, 0, timer, 1); if (n == WSA_WAIT_TIMEOUT) close some event; if (n == WSA_IO_COMPLETION) again /* try it with AcceptEx() on NT to detect connected sockets */ if (!acceptex) { WSAEnumNetworkEvents( sockets[n - WSA_WAIT_EVENT_0], events[n - WSA_WAIT_EVENT_0], net_events); if (net_events.lNetworkEvents & FD_ACCEPT) { if (net_events.iErrorCode[FD_ACCEPT_BIT] != 0) accept error again ngx_event_accept(); OR post AcceptEx(); } } } void CALLBACK overlapped_completion_procedure(DWORD error, DWORD nbytes, LPWSAOVERLAPPED overlapped, DWORD flags) { run event handler }