37 #include "runtime/handles.hpp"
38 #include "runtime/handles.inline.hpp"
39 #include "runtime/interfaceSupport.hpp"
40 #include "runtime/javaCalls.hpp"
41 #include "runtime/os.hpp"
42 #include "runtime/serviceThread.hpp"
43 #include "runtime/signature.hpp"
44 #include "runtime/vframe.hpp"
45 #include "runtime/vframe_hp.hpp"
46 #include "runtime/vm_operations.hpp"
47 #include "utilities/exceptions.hpp"
48 #ifdef TARGET_OS_FAMILY_linux
49 # include "thread_linux.inline.hpp"
50 #endif
51 #ifdef TARGET_OS_FAMILY_solaris
52 # include "thread_solaris.inline.hpp"
53 #endif
54 #ifdef TARGET_OS_FAMILY_windows
55 # include "thread_windows.inline.hpp"
56 #endif
57
58 //
59 // class JvmtiAgentThread
60 //
61 // JavaThread used to wrap a thread started by an agent
62 // using the JVMTI method RunAgentThread.
63 //
64
65 JvmtiAgentThread::JvmtiAgentThread(JvmtiEnv* env, jvmtiStartFunction start_fn, const void *start_arg)
66 : JavaThread(start_function_wrapper) {
67 _env = env;
68 _start_fn = start_fn;
69 _start_arg = start_arg;
70 }
71
72 void
73 JvmtiAgentThread::start_function_wrapper(JavaThread *thread, TRAPS) {
74 // It is expected that any Agent threads will be created as
75 // Java Threads. If this is the case, notification of the creation
76 // of the thread is given in JavaThread::thread_main().
|
37 #include "runtime/handles.hpp"
38 #include "runtime/handles.inline.hpp"
39 #include "runtime/interfaceSupport.hpp"
40 #include "runtime/javaCalls.hpp"
41 #include "runtime/os.hpp"
42 #include "runtime/serviceThread.hpp"
43 #include "runtime/signature.hpp"
44 #include "runtime/vframe.hpp"
45 #include "runtime/vframe_hp.hpp"
46 #include "runtime/vm_operations.hpp"
47 #include "utilities/exceptions.hpp"
48 #ifdef TARGET_OS_FAMILY_linux
49 # include "thread_linux.inline.hpp"
50 #endif
51 #ifdef TARGET_OS_FAMILY_solaris
52 # include "thread_solaris.inline.hpp"
53 #endif
54 #ifdef TARGET_OS_FAMILY_windows
55 # include "thread_windows.inline.hpp"
56 #endif
57 #ifdef TARGET_OS_FAMILY_bsd
58 # include "thread_bsd.inline.hpp"
59 #endif
60
61 //
62 // class JvmtiAgentThread
63 //
64 // JavaThread used to wrap a thread started by an agent
65 // using the JVMTI method RunAgentThread.
66 //
67
68 JvmtiAgentThread::JvmtiAgentThread(JvmtiEnv* env, jvmtiStartFunction start_fn, const void *start_arg)
69 : JavaThread(start_function_wrapper) {
70 _env = env;
71 _start_fn = start_fn;
72 _start_arg = start_arg;
73 }
74
75 void
76 JvmtiAgentThread::start_function_wrapper(JavaThread *thread, TRAPS) {
77 // It is expected that any Agent threads will be created as
78 // Java Threads. If this is the case, notification of the creation
79 // of the thread is given in JavaThread::thread_main().
|