comparison src/share/vm/prims/jvmtiImpl.hpp @ 2342:46a56fac55c7

7024970: 2/3 assert(ServiceThread::is_service_thread(Thread::current())) failed: Service thread must post enqueue Summary: Change nmethod_lock() to also prevent zombification of the nmethod. CompiledMethodUnload events also need to lock the nmethod. Clean ups in nmethod::make_not_entrant_or_zombie() Reviewed-by: dholmes, kamg, never, dsamersoff, ysr, coleenp, acorn
author dcubed
date Tue, 15 Mar 2011 06:37:31 -0700
parents f91db74a6810
children d2a62e0f25eb
comparison
equal deleted inserted replaced
2341:216d916d5c12 2342:46a56fac55c7
456 456
457 Type _type; 457 Type _type;
458 union { 458 union {
459 nmethod* compiled_method_load; 459 nmethod* compiled_method_load;
460 struct { 460 struct {
461 nmethod* nm;
461 jmethodID method_id; 462 jmethodID method_id;
462 const void* code_begin; 463 const void* code_begin;
463 } compiled_method_unload; 464 } compiled_method_unload;
464 struct { 465 struct {
465 const char* name; 466 const char* name;
475 JvmtiDeferredEvent() : _type(TYPE_NONE) {} 476 JvmtiDeferredEvent() : _type(TYPE_NONE) {}
476 477
477 // Factory methods 478 // Factory methods
478 static JvmtiDeferredEvent compiled_method_load_event(nmethod* nm) 479 static JvmtiDeferredEvent compiled_method_load_event(nmethod* nm)
479 KERNEL_RETURN_(JvmtiDeferredEvent()); 480 KERNEL_RETURN_(JvmtiDeferredEvent());
480 static JvmtiDeferredEvent compiled_method_unload_event( 481 static JvmtiDeferredEvent compiled_method_unload_event(nmethod* nm,
481 jmethodID id, const void* code) KERNEL_RETURN_(JvmtiDeferredEvent()); 482 jmethodID id, const void* code) KERNEL_RETURN_(JvmtiDeferredEvent());
482 static JvmtiDeferredEvent dynamic_code_generated_event( 483 static JvmtiDeferredEvent dynamic_code_generated_event(
483 const char* name, const void* begin, const void* end) 484 const char* name, const void* begin, const void* end)
484 KERNEL_RETURN_(JvmtiDeferredEvent()); 485 KERNEL_RETURN_(JvmtiDeferredEvent());
485 486