--- old/src/os/solaris/vm/os_solaris.cpp 2015-06-22 16:00:36.674916666 +0200 +++ new/src/os/solaris/vm/os_solaris.cpp 2015-06-22 16:00:36.518911348 +0200 @@ -2266,17 +2266,12 @@ return CAST_FROM_FN_PTR(void*, UserHandler); } -class SolarisSemaphore : public os::PosixSemaphore { - public: - SolarisSemaphore(uint value = 0) : os::PosixSemaphore(value) {} - - bool timedwait(unsigned int sec, int nsec) { - struct timespec ts; - unpackTime(&ts, false, (sec * NANOSECS_PER_SEC) + nsec); +struct timespec os::PosixSemaphore::create_timespec(unsigned int sec, int nsec) { + struct timespec ts; + unpackTime(&ts, false, (sec * NANOSECS_PER_SEC) + nsec); - return os::PosixSemaphore::timedwait(ts); - } -}; + return ts; +} extern "C" { typedef void (*sa_handler_t)(int); @@ -3675,7 +3670,7 @@ osthread->set_ucontext(context); } -static SolarisSemaphore sr_semaphore; +static os::PosixSemaphore sr_semaphore; void os::Solaris::SR_handler(Thread* thread, ucontext_t* uc) { // Save and restore errno to avoid confusing native code with EINTR