timeout в функции select Win32
Windows XP, SP2, неблокирующий socket.
select не возвращает управление раньше чем через 15-16 миллисекунд.
если запросить 17мс — будет 31-32мсек.
Неужто планировщик ОС так плохо справляется ???
Linux 2.6 просто наура отрабатывает...
вырезки из кода:
=== проверил WinSock ===
wVersionRequested = MAKEWORD( 2, 2 );
err = WSAStartup (wVersionRequested, &wsaData );
=== TCP ===
sock = socket (AF_INET, SOCK_STREAM, 0);
=== неблокирующий ===
unsigned long one=1;
ioctlsocket (sock, FIONBIO, &one);
tv.tv_usec = 1;
tv.tv_sec = 0;
FD_ZERO (&readfd);
FD_ZERO (&writefd);
FD_ZERO (&exceptfd);
FD_SET (seq->sock, &readfd);
=== Есть что на чтение ? ====
res = select (seq->sock+1, &readfd, &writefd, &exceptfd, &tv);
возвращает управление через 15-16 мсек, ни разу раньше...
Пока на собственное сообщение не было ответов, его можно удалить.