< prev index next >

src/os/windows/vm/os_windows.cpp

Print this page

        

*** 1907,1923 **** ::CloseHandle(_semaphore); } } void Semaphore::signal(uint count) { BOOL ret = ::ReleaseSemaphore(_semaphore, count, NULL); assert(ret != 0, err_msg("ReleaseSemaphore failed: %d", GetLastError())); ! } ! ! void Semaphore::signal() { ! signal(1); } void Semaphore::wait() { DWORD ret = ::WaitForSingleObject(_semaphore, INFINITE); assert(ret == WAIT_OBJECT_0, err_msg("WaitForSingleObject failed: %d", GetLastError())); --- 1907,1921 ---- ::CloseHandle(_semaphore); } } void Semaphore::signal(uint count) { + if (count > 0) { BOOL ret = ::ReleaseSemaphore(_semaphore, count, NULL); assert(ret != 0, err_msg("ReleaseSemaphore failed: %d", GetLastError())); ! } } void Semaphore::wait() { DWORD ret = ::WaitForSingleObject(_semaphore, INFINITE); assert(ret == WAIT_OBJECT_0, err_msg("WaitForSingleObject failed: %d", GetLastError()));
< prev index next >