timeout в функции select Win32
От: biohumanoid  
Дата: 19.05.10 10:11
Оценка:
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 мсек, ни разу раньше...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.