89 bool has_specific_operation(bool is_direct) const { 90 return is_direct ? _operation_direct != NULL : _operation != NULL; 91 } 92 93 void process_by_self() { 94 if (!_thread_in_process_handshake) { 95 AutoModifyRestore<bool> temporarily(_thread_in_process_handshake, true); 96 process_self_inner(); 97 } 98 } 99 100 enum ProcessResult { 101 _no_operation = 0, 102 _not_safe, 103 _state_busy, 104 _success, 105 _number_states 106 }; 107 ProcessResult try_process(HandshakeOperation* op); 108 109 #ifdef ASSERT 110 Thread* _active_handshaker; 111 Thread* active_handshaker() const { return _active_handshaker; } 112 #endif 113 114 }; 115 116 #endif // SHARE_RUNTIME_HANDSHAKE_HPP | 89 bool has_specific_operation(bool is_direct) const { 90 return is_direct ? _operation_direct != NULL : _operation != NULL; 91 } 92 93 void process_by_self() { 94 if (!_thread_in_process_handshake) { 95 AutoModifyRestore<bool> temporarily(_thread_in_process_handshake, true); 96 process_self_inner(); 97 } 98 } 99 100 enum ProcessResult { 101 _no_operation = 0, 102 _not_safe, 103 _state_busy, 104 _success, 105 _number_states 106 }; 107 ProcessResult try_process(HandshakeOperation* op); 108 109 Thread* _active_handshaker; 110 Thread* active_handshaker() const { return _active_handshaker; } 111 }; 112 113 #endif // SHARE_RUNTIME_HANDSHAKE_HPP |