Mercurial > hg > nginx
comparison 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 |
comparison
equal
deleted
inserted
replaced
2776:88987e52be42 | 2777:7615a6c5fb54 |
---|---|
312 *(int *) (void *) &work_read_fd_set); | 312 *(int *) (void *) &work_read_fd_set); |
313 #endif | 313 #endif |
314 | 314 |
315 #if (NGX_WIN32) | 315 #if (NGX_WIN32) |
316 | 316 |
317 ready = select(0, &work_read_fd_set, &work_write_fd_set, NULL, tp); | 317 if (max_read || max_write) { |
318 ready = select(0, &work_read_fd_set, &work_write_fd_set, NULL, tp); | |
319 | |
320 } else { | |
321 | |
322 /* | |
323 * Winsock select() requires that at least one descriptor set must be | |
324 * be non-null, and any non-null descriptor set must contain at least | |
325 * one handle to a socket. Otherwise select() returns WSAEINVAL. | |
326 */ | |
327 | |
328 ngx_msleep(timer); | |
329 | |
330 ready = 0; | |
331 } | |
318 | 332 |
319 #else | 333 #else |
320 | 334 |
321 ready = select(max_fd + 1, &work_read_fd_set, &work_write_fd_set, NULL, tp); | 335 ready = select(max_fd + 1, &work_read_fd_set, &work_write_fd_set, NULL, tp); |
322 | 336 |