COR_PRF_SUSPEND_REASON Enumeration
Indicates the reason that the runtime is suspended.
Syntax
typedef enum {
COR_PRF_SUSPEND_OTHER = 0x00,
COR_PRF_SUSPEND_FOR_GC = 0x01,
COR_PRF_SUSPEND_FOR_APPDOMAIN_SHUTDOWN = 0x02,
COR_PRF_SUSPEND_FOR_CODE_PITCHING = 0x03,
COR_PRF_SUSPEND_FOR_SHUTDOWN = 0x04,
COR_PRF_SUSPEND_FOR_INPROC_DEBUGGER = 0x06,
COR_PRF_SUSPEND_FOR_GC_PREP = 0x07, COR_PRF_SUSPEND_FOR_REJIT = 8
} COR_PRF_SUSPEND_REASON;
Members
Member | Description |
---|---|
COR_PRF_SUSPEND_OTHER |
The runtime is suspended for an unspecified reason. |
COR_PRF_SUSPEND_FOR_GC |
The runtime is suspended to service a garbage collection request. The garbage collection-related callbacks occur between the ICorProfilerCallback::RuntimeSuspendFinished and ICorProfilerCallback::RuntimeResumeStarted callbacks. |
COR_PRF_SUSPEND_FOR_APPDOMAIN_SHUTDOWN |
The runtime is suspended so that an AppDomain can be shut down.While the runtime is suspended, the runtime will determine which threads are in the AppDomain that is being shut down and set them to abort when they resume. There are no AppDomain -specific callbacks during this suspension. |
COR_PRF_SUSPEND_FOR_CODE_PITCHING |
The runtime is suspended so that code pitching can occur. Code pitching ensues only when the just-in-time (JIT) compiler is active with code pitching enabled. Code pitching callbacks occur between the ICorProfilerCallback::RuntimeSuspendFinished and ICorProfilerCallback::RuntimeResumeStarted callbacks. Note: The CLR JIT does not pitch functions in .NET Framework version 2.0, so this value is not used in 2.0. |
COR_PRF_SUSPEND_FOR_SHUTDOWN |
The runtime is suspended so that it can shut down. It must suspend all threads to complete the operation. |
COR_PRF_SUSPEND_FOR_INPROC_DEBUGGER |
The runtime is suspended for in-process debugging. |
COR_PRF_SUSPEND_FOR_GC_PREP |
The runtime is suspended to prepare for a garbage collection. |
COR_PRF_SUSPEND_FOR_REJIT |
The runtime is suspended for JIT recompilation. |
Remarks
All runtime threads that are in unmanaged code are permitted to continue running until they try to re-enter the runtime, at which point they will also be suspended until the runtime resumes. This also applies to new threads that enter the runtime. All threads within the runtime are either suspended immediately if they are in interruptible code, or asked to suspend when they do reach interruptible code.
Requirements
Platforms: See System Requirements.
Header: CorProf.idl, CorProf.h
Library: CorGuids.lib
.NET Framework Versions: Available since 1.0