76 // The SurrogateLockerThread is used by concurrent GC threads for
77 // manipulating Java monitors, in particular, currently for
78 // manipulating the pending_list_lock. XXX
79 class SurrogateLockerThread: public JavaThread {
80 friend class VMStructs;
81 public:
82 enum SLT_msg_type {
83 empty = 0, // no message
84 acquirePLL, // acquire pending list lock
85 releaseAndNotifyPLL // notify and release pending list lock
86 };
87 private:
88 // the following are shared with the CMSThread
89 SLT_msg_type _buffer; // communication buffer
90 Monitor _monitor; // monitor controlling buffer
91 BasicLock _basicLock; // used for PLL locking
92
93 public:
94 static SurrogateLockerThread* make(TRAPS);
95
96 SurrogateLockerThread();
97
98 bool is_hidden_from_external_view() const { return true; }
99
100 void loop(); // main method
101
102 void manipulatePLL(SLT_msg_type msg);
103
104 };
105
106 #endif // SHARE_VM_GC_IMPLEMENTATION_SHARED_CONCURRENTGCTHREAD_HPP
|
76 // The SurrogateLockerThread is used by concurrent GC threads for
77 // manipulating Java monitors, in particular, currently for
78 // manipulating the pending_list_lock. XXX
79 class SurrogateLockerThread: public JavaThread {
80 friend class VMStructs;
81 public:
82 enum SLT_msg_type {
83 empty = 0, // no message
84 acquirePLL, // acquire pending list lock
85 releaseAndNotifyPLL // notify and release pending list lock
86 };
87 private:
88 // the following are shared with the CMSThread
89 SLT_msg_type _buffer; // communication buffer
90 Monitor _monitor; // monitor controlling buffer
91 BasicLock _basicLock; // used for PLL locking
92
93 public:
94 static SurrogateLockerThread* make(TRAPS);
95
96 // Terminate VM with error message that SLT needed but not yet created.
97 static void report_missing_slt();
98
99 SurrogateLockerThread();
100
101 bool is_hidden_from_external_view() const { return true; }
102
103 void loop(); // main method
104
105 void manipulatePLL(SLT_msg_type msg);
106
107 };
108
109 #endif // SHARE_VM_GC_IMPLEMENTATION_SHARED_CONCURRENTGCTHREAD_HPP
|