< prev index next >

src/hotspot/share/utilities/waitBarrier_generic.hpp

Print this page
rev 53078 : 8214271: Fast primitive to wake many threads
Reviewed-by:
rev 53079 : [mq]: fix-sema


  35   // The number of threads waiting on or about to wait on the semaphore.
  36   volatile int _waiters;
  37   // The number of threads in the wait path, before or after the tag check.
  38   // These threads can become waiters.
  39   volatile int _barrier_threads;
  40   Semaphore _sem_barrier;
  41 
  42   // Prevent copying and assignment of GenericWaitBarrier instances.
  43   GenericWaitBarrier(const GenericWaitBarrier&);
  44   GenericWaitBarrier& operator=(const GenericWaitBarrier&);
  45 
  46   int wake_if_needed();
  47 
  48  public:
  49   GenericWaitBarrier() : _barrier_tag(0), _waiters(0), _barrier_threads(0), _sem_barrier(0) {}
  50   ~GenericWaitBarrier() {}
  51 
  52   const char* description() { return "semaphore"; }
  53 
  54   void arm(int barrier_tag);
  55   void disarm();
  56   void wake();
  57   void wait(int barrier_tag);
  58 };
  59 
  60 #endif // SHARE_UTILITIES_WAITBARRIER_GENERIC_HPP


  35   // The number of threads waiting on or about to wait on the semaphore.
  36   volatile int _waiters;
  37   // The number of threads in the wait path, before or after the tag check.
  38   // These threads can become waiters.
  39   volatile int _barrier_threads;
  40   Semaphore _sem_barrier;
  41 
  42   // Prevent copying and assignment of GenericWaitBarrier instances.
  43   GenericWaitBarrier(const GenericWaitBarrier&);
  44   GenericWaitBarrier& operator=(const GenericWaitBarrier&);
  45 
  46   int wake_if_needed();
  47 
  48  public:
  49   GenericWaitBarrier() : _barrier_tag(0), _waiters(0), _barrier_threads(0), _sem_barrier(0) {}
  50   ~GenericWaitBarrier() {}
  51 
  52   const char* description() { return "semaphore"; }
  53 
  54   void arm(int barrier_tag);

  55   void wake();
  56   void wait(int barrier_tag);
  57 };
  58 
  59 #endif // SHARE_UTILITIES_WAITBARRIER_GENERIC_HPP
< prev index next >