waiters.cpp revision 0
0N/A * Copyright 2004 Sun Microsystems, Inc. All Rights Reserved. 0N/A * Redistribution and use in source and binary forms, with or without 0N/A * modification, are permitted provided that the following conditions 0N/A * - Redistributions of source code must retain the above copyright 0N/A * notice, this list of conditions and the following disclaimer. 0N/A * - Redistributions in binary form must reproduce the above copyright 0N/A * notice, this list of conditions and the following disclaimer in the 0N/A * documentation and/or other materials provided with the distribution. 0N/A * - Neither the name of Sun Microsystems nor the names of its 0N/A * contributors may be used to endorse or promote products derived 0N/A * from this software without specific prior written permission. 0N/A * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS 0N/A * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 0N/A * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 0N/A * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 0N/A * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 0N/A * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 0N/A * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 0N/A * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 0N/A * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 0N/A * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 0N/A * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 0N/A/* Example of using JVMTI events: 0N/A * JVMTI_EVENT_VM_INIT 0N/A * JVMTI_EVENT_VM_DEATH 0N/A * JVMTI_EVENT_THREAD_START 0N/A * JVMTI_EVENT_THREAD_END 0N/A * JVMTI_EVENT_MONITOR_CONTENDED_ENTER 0N/A * JVMTI_EVENT_MONITOR_WAIT 0N/A * JVMTI_EVENT_MONITOR_WAITED 0N/A * JVMTI_EVENT_OBJECT_FREE 0N/A/* Given a jvmtiEnv*, return the C++ Agent class instance */ 0N/A /* This should never happen, but we should check */ 0N/A/* Enter raw monitor */ 0N/A/* Exit raw monitor */ 0N/A/* All callbacks need to be extern "C" */ 0N/A /* Create raw monitor to protect against threads running after death */ 0N/A /* Create an Agent instance, set JVMTI Local Storage */ 0N/A /* Enable all other events we want */ 0N/A /* Block all callbacks */ 0N/A /* Set flag for other callbacks */ 0N/A /* Inform Agent instance of VM_DEATH */ 0N/A /* Reclaim space of Agent */ 0N/A /* Agent_OnLoad() is called first, we prepare for a VM_INIT event here. */ 0N/A /* Get JVMTI environment */ 0N/A /* Set all callbacks and enable VM_INIT event notification */ 0N/A /* Agent_OnUnload() is called last */ 0N/A}
/* of extern "C" */