deactivateInjectedCode() Deactivate the injected code for the current instrumentation type, and clean up all the supporting data structures
maintained by the corresponding ProfilerRuntimeXXX class.
initProfilerInterface(ProfilingSessionStatus status, Thread specialThread) This method initializes the internal data structures, and also records the profiler's own thread(s), so that
they are not affected by our suspend/resume operations.
public static void clearProfilerDataStructures()(Code)
This method cleans up the data structures managed by this class, but not by various ProfilerRuntimeXXX classes.
The latter are cleaned up separately, by the following deactivateInjectedCode() method.
Deactivate the injected code for the current instrumentation type, and clean up all the supporting data structures
maintained by the corresponding ProfilerRuntimeXXX class.
This method initializes the internal data structures, and also records the profiler's own thread(s), so that
they are not affected by our suspend/resume operations. If we run in the normal mode, i.e. the target JVM was
started by the client, specialThread is the current thread, which will then become the target app main thread.
It should be excluded from the list of the profiler's own threads. If we run in the attached mode, specialThread
is the only thread that we can reliably characterize as the profiler's own.