Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mobile
Path: blob/master/src/hotspot/share/classfile/javaThreadStatus.hpp
40949 views
1
/*
2
* Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved.
3
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4
*
5
* This code is free software; you can redistribute it and/or modify it
6
* under the terms of the GNU General Public License version 2 only, as
7
* published by the Free Software Foundation.
8
*
9
* This code is distributed in the hope that it will be useful, but WITHOUT
10
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12
* version 2 for more details (a copy is included in the LICENSE file that
13
* accompanied this code).
14
*
15
* You should have received a copy of the GNU General Public License version
16
* 2 along with this work; if not, write to the Free Software Foundation,
17
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18
*
19
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20
* or visit www.oracle.com if you need additional information or have any
21
* questions.
22
*
23
*/
24
25
#ifndef SHARE_CLASSFILE_JAVATHREADSTATUS_HPP
26
#define SHARE_CLASSFILE_JAVATHREADSTATUS_HPP
27
28
#include "jvmtifiles/jvmti.h"
29
30
// Java Thread Status for JVMTI and M&M use.
31
// This thread status info is saved in threadStatus field of
32
// java.lang.Thread java class.
33
enum class JavaThreadStatus : int {
34
NEW = 0,
35
RUNNABLE = JVMTI_THREAD_STATE_ALIVE + // runnable / running
36
JVMTI_THREAD_STATE_RUNNABLE,
37
SLEEPING = JVMTI_THREAD_STATE_ALIVE + // Thread.sleep()
38
JVMTI_THREAD_STATE_WAITING +
39
JVMTI_THREAD_STATE_WAITING_WITH_TIMEOUT +
40
JVMTI_THREAD_STATE_SLEEPING,
41
IN_OBJECT_WAIT = JVMTI_THREAD_STATE_ALIVE + // Object.wait()
42
JVMTI_THREAD_STATE_WAITING +
43
JVMTI_THREAD_STATE_WAITING_INDEFINITELY +
44
JVMTI_THREAD_STATE_IN_OBJECT_WAIT,
45
IN_OBJECT_WAIT_TIMED = JVMTI_THREAD_STATE_ALIVE + // Object.wait(long)
46
JVMTI_THREAD_STATE_WAITING +
47
JVMTI_THREAD_STATE_WAITING_WITH_TIMEOUT +
48
JVMTI_THREAD_STATE_IN_OBJECT_WAIT,
49
PARKED = JVMTI_THREAD_STATE_ALIVE + // LockSupport.park()
50
JVMTI_THREAD_STATE_WAITING +
51
JVMTI_THREAD_STATE_WAITING_INDEFINITELY +
52
JVMTI_THREAD_STATE_PARKED,
53
PARKED_TIMED = JVMTI_THREAD_STATE_ALIVE + // LockSupport.park(long)
54
JVMTI_THREAD_STATE_WAITING +
55
JVMTI_THREAD_STATE_WAITING_WITH_TIMEOUT +
56
JVMTI_THREAD_STATE_PARKED,
57
BLOCKED_ON_MONITOR_ENTER = JVMTI_THREAD_STATE_ALIVE + // (re-)entering a synchronization block
58
JVMTI_THREAD_STATE_BLOCKED_ON_MONITOR_ENTER,
59
TERMINATED = JVMTI_THREAD_STATE_TERMINATED
60
};
61
62
#endif // SHARE_CLASSFILE_JAVATHREADSTATUS_HPP
63
64