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