src/share/vm/prims/jvmtiImpl.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File
*** old/src/share/vm/prims/jvmtiImpl.hpp	Fri Sep 21 10:49:17 2012
--- new/src/share/vm/prims/jvmtiImpl.hpp	Fri Sep 21 10:49:16 2012

*** 479,497 **** --- 479,497 ---- JvmtiDeferredEvent() : _type(TYPE_NONE) {} // Factory methods static JvmtiDeferredEvent compiled_method_load_event(nmethod* nm) ! KERNEL_RETURN_(JvmtiDeferredEvent()); ! NOT_JVMTI_RETURN_(JvmtiDeferredEvent()); static JvmtiDeferredEvent compiled_method_unload_event(nmethod* nm, ! jmethodID id, const void* code) KERNEL_RETURN_(JvmtiDeferredEvent()); ! jmethodID id, const void* code) NOT_JVMTI_RETURN_(JvmtiDeferredEvent()); static JvmtiDeferredEvent dynamic_code_generated_event( const char* name, const void* begin, const void* end) ! KERNEL_RETURN_(JvmtiDeferredEvent()); ! NOT_JVMTI_RETURN_(JvmtiDeferredEvent()); // Actually posts the event. ! void post() KERNEL_RETURN; ! void post() NOT_JVMTI_RETURN; }; /** * Events enqueued on this queue wake up the Service thread which dequeues * and posts the events. The Service_lock is required to be held
*** 518,542 **** --- 518,542 ---- static QueueNode* _queue_head; // Hold Service_lock to access static QueueNode* _queue_tail; // Hold Service_lock to access static volatile QueueNode* _pending_list; // Uses CAS for read/update // Transfers events from the _pending_list to the _queue. ! static void process_pending_events() KERNEL_RETURN; ! static void process_pending_events() NOT_JVMTI_RETURN; public: // Must be holding Service_lock when calling these ! static bool has_events() KERNEL_RETURN_(false); ! static void enqueue(const JvmtiDeferredEvent& event) KERNEL_RETURN; ! static JvmtiDeferredEvent dequeue() KERNEL_RETURN_(JvmtiDeferredEvent()); ! static bool has_events() NOT_JVMTI_RETURN_(false); ! static void enqueue(const JvmtiDeferredEvent& event) NOT_JVMTI_RETURN; ! static JvmtiDeferredEvent dequeue() NOT_JVMTI_RETURN_(JvmtiDeferredEvent()); // Used to enqueue events without using a lock, for times (such as during // safepoint) when we can't or don't want to lock the Service_lock. // // Events will be held off to the side until there's a call to // dequeue(), enqueue(), or process_pending_events() (all of which require // the holding of the Service_lock), and will be enqueued at that time. ! static void add_pending_event(const JvmtiDeferredEvent&) KERNEL_RETURN; ! static void add_pending_event(const JvmtiDeferredEvent&) NOT_JVMTI_RETURN; }; // Utility macro that checks for NULL pointers: #define NULL_CHECK(X, Y) if ((X) == NULL) { return (Y); }

src/share/vm/prims/jvmtiImpl.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File