2268
2269 // Get Java threads that are waiting to enter a monitor.
2270 static GrowableArray<JavaThread*>* get_pending_threads(ThreadsList * t_list,
2271 int count, address monitor);
2272
2273 // Get owning Java thread from the monitor's owner field.
2274 static JavaThread *owning_thread_from_monitor_owner(ThreadsList * t_list,
2275 address owner);
2276
2277 // Number of threads on the active threads list
2278 static int number_of_threads() { return _number_of_threads; }
2279 // Number of non-daemon threads on the active threads list
2280 static int number_of_non_daemon_threads() { return _number_of_non_daemon_threads; }
2281
2282 // Deoptimizes all frames tied to marked nmethods
2283 static void deoptimized_wrt_marked_nmethods();
2284
2285 struct Test; // For private gtest access.
2286 };
2287
2288
2289 // Thread iterator
2290 class ThreadClosure: public StackObj {
2291 public:
2292 virtual void do_thread(Thread* thread) = 0;
2293 };
2294
2295 class SignalHandlerMark: public StackObj {
2296 private:
2297 Thread* _thread;
2298 public:
2299 SignalHandlerMark(Thread* t) {
2300 _thread = t;
2301 if (_thread) _thread->enter_signal_handler();
2302 }
2303 ~SignalHandlerMark() {
2304 if (_thread) _thread->leave_signal_handler();
2305 _thread = NULL;
2306 }
2307 };
2308
2309
2310 #endif // SHARE_RUNTIME_THREAD_HPP
|
2268
2269 // Get Java threads that are waiting to enter a monitor.
2270 static GrowableArray<JavaThread*>* get_pending_threads(ThreadsList * t_list,
2271 int count, address monitor);
2272
2273 // Get owning Java thread from the monitor's owner field.
2274 static JavaThread *owning_thread_from_monitor_owner(ThreadsList * t_list,
2275 address owner);
2276
2277 // Number of threads on the active threads list
2278 static int number_of_threads() { return _number_of_threads; }
2279 // Number of non-daemon threads on the active threads list
2280 static int number_of_non_daemon_threads() { return _number_of_non_daemon_threads; }
2281
2282 // Deoptimizes all frames tied to marked nmethods
2283 static void deoptimized_wrt_marked_nmethods();
2284
2285 struct Test; // For private gtest access.
2286 };
2287
2288 class SignalHandlerMark: public StackObj {
2289 private:
2290 Thread* _thread;
2291 public:
2292 SignalHandlerMark(Thread* t) {
2293 _thread = t;
2294 if (_thread) _thread->enter_signal_handler();
2295 }
2296 ~SignalHandlerMark() {
2297 if (_thread) _thread->leave_signal_handler();
2298 _thread = NULL;
2299 }
2300 };
2301
2302
2303 #endif // SHARE_RUNTIME_THREAD_HPP
|