| /* | |
| * Copyright (C) 2013 The Android Open Source Project | |
| * | |
| * Licensed under the Apache License, Version 2.0 (the "License"); | |
| * you may not use this file except in compliance with the License. | |
| * You may obtain a copy of the License at | |
| * | |
| * http://www.apache.org/licenses/LICENSE-2.0 | |
| * | |
| * Unless required by applicable law or agreed to in writing, software | |
| * distributed under the License is distributed on an "AS IS" BASIS, | |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| * See the License for the specific language governing permissions and | |
| * limitations under the License. | |
| */ | |
| #ifndef ART_RUNTIME_THREAD_STATE_H_ | |
| #define ART_RUNTIME_THREAD_STATE_H_ | |
| namespace art { | |
| enum ThreadState { | |
| // Thread.State JDWP state | |
| kTerminated = 66, // TERMINATED TS_ZOMBIE Thread.run has returned, but Thread* still around | |
| kRunnable, // RUNNABLE TS_RUNNING runnable | |
| kTimedWaiting, // TIMED_WAITING TS_WAIT in Object.wait() with a timeout | |
| kSleeping, // TIMED_WAITING TS_SLEEPING in Thread.sleep() | |
| kBlocked, // BLOCKED TS_MONITOR blocked on a monitor | |
| kWaiting, // WAITING TS_WAIT in Object.wait() | |
| kWaitingForGcToComplete, // WAITING TS_WAIT blocked waiting for GC | |
| kWaitingForCheckPointsToRun, // WAITING TS_WAIT GC waiting for checkpoints to run | |
| kWaitingPerformingGc, // WAITING TS_WAIT performing GC | |
| kWaitingForDebuggerSend, // WAITING TS_WAIT blocked waiting for events to be sent | |
| kWaitingForDebuggerToAttach, // WAITING TS_WAIT blocked waiting for debugger to attach | |
| kWaitingInMainDebuggerLoop, // WAITING TS_WAIT blocking/reading/processing debugger events | |
| kWaitingForDebuggerSuspension, // WAITING TS_WAIT waiting for debugger suspend all | |
| kWaitingForJniOnLoad, // WAITING TS_WAIT waiting for execution of dlopen and JNI on load code | |
| kWaitingForSignalCatcherOutput, // WAITING TS_WAIT waiting for signal catcher IO to complete | |
| kWaitingInMainSignalCatcherLoop, // WAITING TS_WAIT blocking/reading/processing signals | |
| kWaitingForDeoptimization, // WAITING TS_WAIT waiting for deoptimization suspend all | |
| kWaitingForMethodTracingStart, // WAITING TS_WAIT waiting for method tracing to start | |
| kStarting, // NEW TS_WAIT native thread started, not yet ready to run managed code | |
| kNative, // RUNNABLE TS_RUNNING running in a JNI native method | |
| kSuspended, // RUNNABLE TS_RUNNING suspended by GC or debugger | |
| }; | |
| } // namespace art | |
| #endif // ART_RUNTIME_THREAD_STATE_H_ |