< prev index next >

src/os/solaris/vm/os_solaris.cpp

Print this page

        

*** 2264,2284 **** void* os::user_handler() { 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); ! return os::PosixSemaphore::timedwait(ts); ! } ! }; extern "C" { typedef void (*sa_handler_t)(int); typedef void (*sa_sigaction_t)(int, siginfo_t *, void *); } --- 2264,2279 ---- void* os::user_handler() { return CAST_FROM_FN_PTR(void*, UserHandler); } ! struct timespec os::PosixSemaphore::create_timespec(unsigned int sec, int nsec) { struct timespec ts; unpackTime(&ts, false, (sec * NANOSECS_PER_SEC) + nsec); ! return ts; ! } extern "C" { typedef void (*sa_handler_t)(int); typedef void (*sa_sigaction_t)(int, siginfo_t *, void *); }
*** 3673,3683 **** static void suspend_save_context(OSThread *osthread, ucontext_t* context) { osthread->set_ucontext(context); } ! static SolarisSemaphore sr_semaphore; void os::Solaris::SR_handler(Thread* thread, ucontext_t* uc) { // Save and restore errno to avoid confusing native code with EINTR // after sigsuspend. int old_errno = errno; --- 3668,3678 ---- static void suspend_save_context(OSThread *osthread, ucontext_t* context) { osthread->set_ucontext(context); } ! 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 // after sigsuspend. int old_errno = errno;
< prev index next >