# HG changeset patch # User mgronlun # Date 1360751026 -3600 # Node ID 7adae9244bc8d01f06dee00272498d79cba76900 # Parent 5ee2b330eacd1e6a5ba6dd57695d5eea215ecd77 8007312: null check signal semaphore in os::signal_notify windows Reviewed-by: dholmes, sla diff -r 5ee2b330eacd -r 7adae9244bc8 src/os/windows/vm/os_windows.cpp --- a/src/os/windows/vm/os_windows.cpp Tue Feb 12 12:19:28 2013 -0500 +++ b/src/os/windows/vm/os_windows.cpp Wed Feb 13 11:23:46 2013 +0100 @@ -1940,7 +1940,7 @@ // a counter for each possible signal value, including signal_thread exit signal static volatile jint pending_signals[NSIG+1] = { 0 }; -static HANDLE sig_sem; +static HANDLE sig_sem = NULL; void os::signal_init_pd() { // Initialize signal structures @@ -1970,10 +1970,11 @@ void os::signal_notify(int signal_number) { BOOL ret; - - Atomic::inc(&pending_signals[signal_number]); - ret = ::ReleaseSemaphore(sig_sem, 1, NULL); - assert(ret != 0, "ReleaseSemaphore() failed"); + if (sig_sem != NULL) { + Atomic::inc(&pending_signals[signal_number]); + ret = ::ReleaseSemaphore(sig_sem, 1, NULL); + assert(ret != 0, "ReleaseSemaphore() failed"); + } } static int check_pending_signals(bool wait_for_signal) {