Mercurial > hg > nginx-quic
view src/event/modules/ngx_overlapped_module.c @ 214:e0c502f15852
nginx-0.0.1-2003-12-22-12:40:48 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Mon, 22 Dec 2003 09:40:48 +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 }