< prev index next >
src/hotspot/share/runtime/handshake.cpp
Print this page
*** 381,393 ****
HandshakeState::HandshakeState() :
_operation(NULL),
_operation_direct(NULL),
_handshake_turn_sem(1),
_processing_sem(1),
! _thread_in_process_handshake(false)
{
- DEBUG_ONLY(_active_handshaker = NULL;)
}
void HandshakeState::set_operation(HandshakeOperation* op) {
if (!op->is_direct()) {
assert(Thread::current()->is_VM_thread(), "should be the VMThread");
--- 381,393 ----
HandshakeState::HandshakeState() :
_operation(NULL),
_operation_direct(NULL),
_handshake_turn_sem(1),
_processing_sem(1),
! _thread_in_process_handshake(false),
! _active_handshaker(NULL)
{
}
void HandshakeState::set_operation(HandshakeOperation* op) {
if (!op->is_direct()) {
assert(Thread::current()->is_VM_thread(), "should be the VMThread");
*** 511,523 ****
// getting caught by the semaphore.
ProcessResult pr = _not_safe;
if (can_process_handshake()) {
guarantee(!_processing_sem.trywait(), "we should already own the semaphore");
log_trace(handshake)("Processing handshake by %s", Thread::current()->is_VM_thread() ? "VMThread" : "Handshaker");
! DEBUG_ONLY(_active_handshaker = Thread::current();)
op->do_handshake(_handshakee);
! DEBUG_ONLY(_active_handshaker = NULL;)
// Disarm after we have executed the operation.
clear_handshake(is_direct);
pr = _success;
}
--- 511,523 ----
// getting caught by the semaphore.
ProcessResult pr = _not_safe;
if (can_process_handshake()) {
guarantee(!_processing_sem.trywait(), "we should already own the semaphore");
log_trace(handshake)("Processing handshake by %s", Thread::current()->is_VM_thread() ? "VMThread" : "Handshaker");
! _active_handshaker = Thread::current();
op->do_handshake(_handshakee);
! _active_handshaker = NULL;
// Disarm after we have executed the operation.
clear_handshake(is_direct);
pr = _success;
}
< prev index next >