equal
deleted
inserted
replaced
675 if (!op->doit_prologue()) { |
675 if (!op->doit_prologue()) { |
676 return; // op was cancelled |
676 return; // op was cancelled |
677 } |
677 } |
678 |
678 |
679 // Setup VM_operations for execution |
679 // Setup VM_operations for execution |
680 op->set_calling_thread(t, Thread::get_priority(t)); |
680 op->set_calling_thread(t); |
681 |
681 |
682 // It does not make sense to execute the epilogue, if the VM operation object is getting |
682 // It does not make sense to execute the epilogue, if the VM operation object is getting |
683 // deallocated by the VM thread. |
683 // deallocated by the VM thread. |
684 bool execute_epilog = !op->is_cheap_allocated(); |
684 bool execute_epilog = !op->is_cheap_allocated(); |
685 assert(!concurrent || op->is_cheap_allocated(), "concurrent => cheap_allocated"); |
685 assert(!concurrent || op->is_cheap_allocated(), "concurrent => cheap_allocated"); |
724 // does not allow nested scavenges or compiles. |
724 // does not allow nested scavenges or compiles. |
725 if (!prev_vm_operation->allow_nested_vm_operations()) { |
725 if (!prev_vm_operation->allow_nested_vm_operations()) { |
726 fatal("Nested VM operation %s requested by operation %s", |
726 fatal("Nested VM operation %s requested by operation %s", |
727 op->name(), vm_operation()->name()); |
727 op->name(), vm_operation()->name()); |
728 } |
728 } |
729 op->set_calling_thread(prev_vm_operation->calling_thread(), prev_vm_operation->priority()); |
729 op->set_calling_thread(prev_vm_operation->calling_thread()); |
730 } |
730 } |
731 |
731 |
732 EventMark em("Executing %s VM operation: %s", prev_vm_operation ? "nested" : "", op->name()); |
732 EventMark em("Executing %s VM operation: %s", prev_vm_operation ? "nested" : "", op->name()); |
733 |
733 |
734 // Release all internal handles after operation is evaluated |
734 // Release all internal handles after operation is evaluated |