285 void* object() const;
286 void* object_addr();
287 void set_object(void* obj);
288
289 bool check(TRAPS); // true if the thread owns the monitor.
290 void check_slow(TRAPS);
291 void clear();
292
293 void enter(TRAPS);
294 void exit(bool not_suspended, TRAPS);
295 void wait(jlong millis, bool interruptable, TRAPS);
296 void notify(TRAPS);
297 void notifyAll(TRAPS);
298
299 // Use the following at your own risk
300 intptr_t complete_exit(TRAPS);
301 void reenter(intptr_t recursions, TRAPS);
302
303 private:
304 void AddWaiter(ObjectWaiter * waiter);
305 static void DeferredInitialize();
306 void INotify(Thread * Self);
307 ObjectWaiter * DequeueWaiter();
308 void DequeueSpecificWaiter(ObjectWaiter * waiter);
309 void EnterI(TRAPS);
310 void ReenterI(Thread * Self, ObjectWaiter * SelfNode);
311 void UnlinkAfterAcquire(Thread * Self, ObjectWaiter * SelfNode);
312 int TryLock(Thread * Self);
313 int NotRunnable(Thread * Self, Thread * Owner);
314 int TrySpin(Thread * Self);
315 void ExitEpilog(Thread * Self, ObjectWaiter * Wakee);
316 bool ExitSuspendEquivalent(JavaThread * Self);
317 };
318
319 #endif // SHARE_VM_RUNTIME_OBJECTMONITOR_HPP
|
285 void* object() const;
286 void* object_addr();
287 void set_object(void* obj);
288
289 bool check(TRAPS); // true if the thread owns the monitor.
290 void check_slow(TRAPS);
291 void clear();
292
293 void enter(TRAPS);
294 void exit(bool not_suspended, TRAPS);
295 void wait(jlong millis, bool interruptable, TRAPS);
296 void notify(TRAPS);
297 void notifyAll(TRAPS);
298
299 // Use the following at your own risk
300 intptr_t complete_exit(TRAPS);
301 void reenter(intptr_t recursions, TRAPS);
302
303 private:
304 void AddWaiter(ObjectWaiter * waiter);
305 void INotify(Thread * Self);
306 ObjectWaiter * DequeueWaiter();
307 void DequeueSpecificWaiter(ObjectWaiter * waiter);
308 void EnterI(TRAPS);
309 void ReenterI(Thread * Self, ObjectWaiter * SelfNode);
310 void UnlinkAfterAcquire(Thread * Self, ObjectWaiter * SelfNode);
311 int TryLock(Thread * Self);
312 int NotRunnable(Thread * Self, Thread * Owner);
313 int TrySpin(Thread * Self);
314 void ExitEpilog(Thread * Self, ObjectWaiter * Wakee);
315 bool ExitSuspendEquivalent(JavaThread * Self);
316 };
317
318 #endif // SHARE_VM_RUNTIME_OBJECTMONITOR_HPP
|