src/share/vm/runtime/objectMonitor.hpp

Print this page




 314                                 // in PRODUCT for -XX:SyncKnobs=Verbose=1
 315 #ifndef PRODUCT
 316   void      verify();
 317   void      print();
 318 #endif
 319 
 320   bool      try_enter(TRAPS);
 321   void      enter(TRAPS);
 322   void      exit(bool not_suspended, TRAPS);
 323   void      wait(jlong millis, bool interruptable, TRAPS);
 324   void      notify(TRAPS);
 325   void      notifyAll(TRAPS);
 326 
 327 // Use the following at your own risk
 328   intptr_t  complete_exit(TRAPS);
 329   void      reenter(intptr_t recursions, TRAPS);
 330 
 331  private:
 332   void      AddWaiter(ObjectWaiter * waiter);
 333   static    void DeferredInitialize();
 334 
 335   ObjectWaiter * DequeueWaiter();
 336   void      DequeueSpecificWaiter(ObjectWaiter * waiter);
 337   void      EnterI(TRAPS);
 338   void      ReenterI(Thread * Self, ObjectWaiter * SelfNode);
 339   void      UnlinkAfterAcquire(Thread * Self, ObjectWaiter * SelfNode);
 340   int       TryLock(Thread * Self);
 341   int       NotRunnable(Thread * Self, Thread * Owner);
 342   int       TrySpin_Fixed(Thread * Self);
 343   int       TrySpin_VaryFrequency(Thread * Self);
 344   int       TrySpin_VaryDuration(Thread * Self);
 345   void      ExitEpilog(Thread * Self, ObjectWaiter * Wakee);
 346   bool      ExitSuspendEquivalent(JavaThread * Self);
 347   void      post_monitor_wait_event(EventJavaMonitorWait * event,
 348                                     jlong notifier_tid,
 349                                     jlong timeout,
 350                                     bool timedout);
 351 
 352 };
 353 
 354 #undef TEVENT


 314                                 // in PRODUCT for -XX:SyncKnobs=Verbose=1
 315 #ifndef PRODUCT
 316   void      verify();
 317   void      print();
 318 #endif
 319 
 320   bool      try_enter(TRAPS);
 321   void      enter(TRAPS);
 322   void      exit(bool not_suspended, TRAPS);
 323   void      wait(jlong millis, bool interruptable, TRAPS);
 324   void      notify(TRAPS);
 325   void      notifyAll(TRAPS);
 326 
 327 // Use the following at your own risk
 328   intptr_t  complete_exit(TRAPS);
 329   void      reenter(intptr_t recursions, TRAPS);
 330 
 331  private:
 332   void      AddWaiter(ObjectWaiter * waiter);
 333   static    void DeferredInitialize();
 334   int       INotify(Thread * Self);
 335   ObjectWaiter * DequeueWaiter();
 336   void      DequeueSpecificWaiter(ObjectWaiter * waiter);
 337   void      EnterI(TRAPS);
 338   void      ReenterI(Thread * Self, ObjectWaiter * SelfNode);
 339   void      UnlinkAfterAcquire(Thread * Self, ObjectWaiter * SelfNode);
 340   int       TryLock(Thread * Self);
 341   int       NotRunnable(Thread * Self, Thread * Owner);
 342   int       TrySpin_Fixed(Thread * Self);
 343   int       TrySpin_VaryFrequency(Thread * Self);
 344   int       TrySpin_VaryDuration(Thread * Self);
 345   void      ExitEpilog(Thread * Self, ObjectWaiter * Wakee);
 346   bool      ExitSuspendEquivalent(JavaThread * Self);
 347   void      post_monitor_wait_event(EventJavaMonitorWait * event,
 348                                     jlong notifier_tid,
 349                                     jlong timeout,
 350                                     bool timedout);
 351 
 352 };
 353 
 354 #undef TEVENT