315 ClearSuccOnSuspend(ObjectMonitor* om) : _om(om) {}
316 void operator()(JavaThread* current);
317 };
318 public:
319 bool enter(JavaThread* current);
320 void exit(JavaThread* current, bool not_suspended = true);
321 void wait(jlong millis, bool interruptible, TRAPS);
322 void notify(TRAPS);
323 void notifyAll(TRAPS);
324
325 void print() const;
326 #ifdef ASSERT
327 void print_debug_style_on(outputStream* st) const;
328 #endif
329 void print_on(outputStream* st) const;
330
331 // Use the following at your own risk
332 intx complete_exit(JavaThread* current);
333 bool reenter(intx recursions, JavaThread* current);
334
335 private:
336 void AddWaiter(ObjectWaiter* waiter);
337 void INotify(JavaThread* current);
338 ObjectWaiter* DequeueWaiter();
339 void DequeueSpecificWaiter(ObjectWaiter* waiter);
340 void EnterI(JavaThread* current);
341 void ReenterI(JavaThread* current, ObjectWaiter* current_node);
342 void UnlinkAfterAcquire(JavaThread* current, ObjectWaiter* current_node);
343 int TryLock(JavaThread* current);
344 int NotRunnable(JavaThread* current, JavaThread* Owner);
345 int TrySpin(JavaThread* current);
346 void ExitEpilog(JavaThread* current, ObjectWaiter* Wakee);
347
348 // Deflation support
349 bool deflate_monitor();
350 void install_displaced_markword_in_object(const oop obj);
351 };
352
353 #endif // SHARE_RUNTIME_OBJECTMONITOR_HPP
|
315 ClearSuccOnSuspend(ObjectMonitor* om) : _om(om) {}
316 void operator()(JavaThread* current);
317 };
318 public:
319 bool enter(JavaThread* current);
320 void exit(JavaThread* current, bool not_suspended = true);
321 void wait(jlong millis, bool interruptible, TRAPS);
322 void notify(TRAPS);
323 void notifyAll(TRAPS);
324
325 void print() const;
326 #ifdef ASSERT
327 void print_debug_style_on(outputStream* st) const;
328 #endif
329 void print_on(outputStream* st) const;
330
331 // Use the following at your own risk
332 intx complete_exit(JavaThread* current);
333 bool reenter(intx recursions, JavaThread* current);
334
335 static void maybe_deflate_dead(oop* p);
336
337 private:
338 void AddWaiter(ObjectWaiter* waiter);
339 void INotify(JavaThread* current);
340 ObjectWaiter* DequeueWaiter();
341 void DequeueSpecificWaiter(ObjectWaiter* waiter);
342 void EnterI(JavaThread* current);
343 void ReenterI(JavaThread* current, ObjectWaiter* current_node);
344 void UnlinkAfterAcquire(JavaThread* current, ObjectWaiter* current_node);
345 int TryLock(JavaThread* current);
346 int NotRunnable(JavaThread* current, JavaThread* Owner);
347 int TrySpin(JavaThread* current);
348 void ExitEpilog(JavaThread* current, ObjectWaiter* Wakee);
349
350 // Deflation support
351 bool deflate_monitor();
352 void install_displaced_markword_in_object(const oop obj);
353 };
354
355 #endif // SHARE_RUNTIME_OBJECTMONITOR_HPP
|