mirror of
https://github.com/curl/curl.git
synced 2025-01-30 14:22:33 +08:00
sockfilt.c: Replace 100ms sleep with thread throttle
Improves performance of test cases 574 and 575 by 50%. A value of zero causes the thread to relinquish the remainder of its time slice to any other thread of equal priority that is ready to run. If there are no other threads of equal priority ready to run, the function returns immediately, and the thread continues execution. http://msdn.microsoft.com/library/windows/desktop/ms686307.aspx
This commit is contained in:
parent
6dd9c3909c
commit
62a018762e
@ -564,7 +564,7 @@ static DWORD WINAPI select_ws_wait_thread(LPVOID lpParameter)
|
||||
/* compare position with size, abort if not equal */
|
||||
if(size.QuadPart == pos.QuadPart) {
|
||||
/* sleep and continue waiting */
|
||||
SleepEx(100, FALSE);
|
||||
SleepEx(0, FALSE);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
@ -618,14 +618,14 @@ static DWORD WINAPI select_ws_wait_thread(LPVOID lpParameter)
|
||||
if(PeekNamedPipe(handle, NULL, 0, NULL, &length, NULL)) {
|
||||
/* if there is no data available, sleep and continue waiting */
|
||||
if(length == 0) {
|
||||
SleepEx(100, FALSE);
|
||||
SleepEx(0, FALSE);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
else {
|
||||
/* if the pipe has been closed, sleep and continue waiting */
|
||||
if(GetLastError() == ERROR_BROKEN_PIPE) {
|
||||
SleepEx(100, FALSE);
|
||||
SleepEx(0, FALSE);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user