< 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 >