Mercurial > hg > nginx
diff src/event/modules/ngx_select_module.c @ 2777:7615a6c5fb54
handle Winsock select() WSAEINVAL
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Wed, 29 Apr 2009 13:42:14 +0000 |
parents | 90312b616162 |
children | ae3cba0dbee3 |
line wrap: on
line diff
--- a/src/event/modules/ngx_select_module.c Wed Apr 29 13:08:10 2009 +0000 +++ b/src/event/modules/ngx_select_module.c Wed Apr 29 13:42:14 2009 +0000 @@ -314,7 +314,21 @@ #if (NGX_WIN32) - ready = select(0, &work_read_fd_set, &work_write_fd_set, NULL, tp); + if (max_read || max_write) { + ready = select(0, &work_read_fd_set, &work_write_fd_set, NULL, tp); + + } else { + + /* + * Winsock select() requires that at least one descriptor set must be + * be non-null, and any non-null descriptor set must contain at least + * one handle to a socket. Otherwise select() returns WSAEINVAL. + */ + + ngx_msleep(timer); + + ready = 0; + } #else