< prev index next >
src/os/linux/vm/os_linux.cpp
Print this page
@@ -2391,15 +2391,11 @@
void* os::user_handler() {
return CAST_FROM_FN_PTR(void*, UserHandler);
}
-class LinuxSemaphore : public os::PosixSemaphore {
- public:
- LinuxSemaphore(uint value = 0) : os::PosixSemaphore(value) {}
-
- bool timedwait(unsigned int sec, int nsec) {
+struct timespec os::PosixSemaphore::create_timespec(unsigned int sec, int nsec) {
struct timespec ts;
// Semaphore's are always associated with CLOCK_REALTIME
os::Linux::clock_gettime(CLOCK_REALTIME, &ts);
// see unpackTime for discussion on overflow checking
if (sec >= MAX_SECS) {
@@ -2412,13 +2408,12 @@
ts.tv_nsec -= NANOSECS_PER_SEC;
++ts.tv_sec; // note: this must be <= max_secs
}
}
- return os::PosixSemaphore::timedwait(ts);
- }
-};
+ return ts;
+}
extern "C" {
typedef void (*sa_handler_t)(int);
typedef void (*sa_sigaction_t)(int, siginfo_t *, void *);
}
@@ -2453,11 +2448,11 @@
// a counter for each possible signal value
static volatile jint pending_signals[NSIG+1] = { 0 };
// Linux(POSIX) specific hand shaking semaphore.
static sem_t sig_sem;
-static LinuxSemaphore sr_semaphore;
+static os::PosixSemaphore sr_semaphore;
void os::signal_init_pd() {
// Initialize signal structures
::memset((void*)pending_signals, 0, sizeof(pending_signals));
< prev index next >