90 static void wait_uninterruptibly(Handle obj, jlong Millis, Thread* THREAD); |
90 static void wait_uninterruptibly(Handle obj, jlong Millis, Thread* THREAD); |
91 |
91 |
92 // used by classloading to free classloader object lock, |
92 // used by classloading to free classloader object lock, |
93 // wait on an internal lock, and reclaim original lock |
93 // wait on an internal lock, and reclaim original lock |
94 // with original recursion count |
94 // with original recursion count |
95 static intptr_t complete_exit(Handle obj, TRAPS); |
95 static intx complete_exit(Handle obj, TRAPS); |
96 static void reenter (Handle obj, intptr_t recursion, TRAPS); |
96 static void reenter (Handle obj, intx recursions, TRAPS); |
97 |
97 |
98 // thread-specific and global ObjectMonitor free list accessors |
98 // thread-specific and global ObjectMonitor free list accessors |
99 static ObjectMonitor* om_alloc(Thread* self); |
99 static ObjectMonitor* om_alloc(Thread* self); |
100 static void om_release(Thread* self, ObjectMonitor* m, |
100 static void om_release(Thread* self, ObjectMonitor* m, |
101 bool FromPerThreadAlloc); |
101 bool FromPerThreadAlloc); |
207 void wait(TRAPS) { ObjectSynchronizer::wait(_obj, 0, CHECK); } // wait forever |
207 void wait(TRAPS) { ObjectSynchronizer::wait(_obj, 0, CHECK); } // wait forever |
208 void notify_all(TRAPS) { ObjectSynchronizer::notifyall(_obj, CHECK); } |
208 void notify_all(TRAPS) { ObjectSynchronizer::notifyall(_obj, CHECK); } |
209 void wait_uninterruptibly(TRAPS) { ObjectSynchronizer::wait_uninterruptibly(_obj, 0, CHECK); } |
209 void wait_uninterruptibly(TRAPS) { ObjectSynchronizer::wait_uninterruptibly(_obj, 0, CHECK); } |
210 // complete_exit gives up lock completely, returning recursion count |
210 // complete_exit gives up lock completely, returning recursion count |
211 // reenter reclaims lock with original recursion count |
211 // reenter reclaims lock with original recursion count |
212 intptr_t complete_exit(TRAPS) { return ObjectSynchronizer::complete_exit(_obj, THREAD); } |
212 intx complete_exit(TRAPS) { return ObjectSynchronizer::complete_exit(_obj, THREAD); } |
213 void reenter(intptr_t recursion, TRAPS) { ObjectSynchronizer::reenter(_obj, recursion, CHECK); } |
213 void reenter(intx recursions, TRAPS) { ObjectSynchronizer::reenter(_obj, recursions, CHECK); } |
214 }; |
214 }; |
215 |
215 |
216 #endif // SHARE_RUNTIME_SYNCHRONIZER_HPP |
216 #endif // SHARE_RUNTIME_SYNCHRONIZER_HPP |