< prev index next >

src/os/windows/vm/os_windows.cpp

Print this page

        

*** 1897,1907 **** } Semaphore::Semaphore(uint value, uint max) { _semaphore = ::CreateSemaphore(NULL, value, max, NULL); ! guarantee(_semaphore != NULL, err_msg("CreateSemaphore failed: %ld", GetLastError())); } Semaphore::~Semaphore() { if (_semaphore != NULL) { ::CloseHandle(_semaphore); --- 1897,1907 ---- } Semaphore::Semaphore(uint value, uint max) { _semaphore = ::CreateSemaphore(NULL, value, max, NULL); ! assert(_semaphore != NULL, err_msg("CreateSemaphore failed: %ld", GetLastError())); } Semaphore::~Semaphore() { if (_semaphore != NULL) { ::CloseHandle(_semaphore);
*** 1909,1938 **** } void Semaphore::signal(uint count) { BOOL ret = ::ReleaseSemaphore(_semaphore, count, NULL); ! guarantee(ret != 0, err_msg("ReleaseSemaphore failed: %d", GetLastError())); } void Semaphore::signal() { signal(1); } void Semaphore::wait() { DWORD ret = ::WaitForSingleObject(_semaphore, INFINITE); ! guarantee(ret == WAIT_OBJECT_0, err_msg("WaitForSingleObject failed: %d", GetLastError())); ! } ! ! bool Semaphore::trywait() { ! Unimplemented(); ! return false; ! } ! ! bool Semaphore::timedwait(unsigned int sec, int nsec) { ! Unimplemented(); ! return false; } // sun.misc.Signal // NOTE that this is a workaround for an apparent kernel bug where if // a signal handler for SIGBREAK is installed then that signal handler --- 1909,1928 ---- } 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())); } // sun.misc.Signal // NOTE that this is a workaround for an apparent kernel bug where if // a signal handler for SIGBREAK is installed then that signal handler
< prev index next >