jvmti_rs/wrapper/enums/
thread_state.rs1use crate::sys;
2
3#[derive(Debug)]
4pub enum JvmtiThreadState {
5 Alive,
6 Terminated,
7 Runnable,
8 BlockedOnMonitorEnter,
9 Waiting,
10 WaitingIndefinitely,
11 WaitingWithTimeout,
12 Sleeping,
13 InObjectWait,
14 Parked,
15 Suspended,
16 Interrupted,
17 InNative,
18 Vendor1,
19 Vendor2,
20 Vendor3,
21 Unsupported(sys::jvmtiThreadState),
22}
23
24impl From<sys::jvmtiThreadState> for JvmtiThreadState {
25 fn from(value: sys::jvmtiThreadState) -> Self {
26 match value {
27 sys::JVMTI_THREAD_STATE_ALIVE => JvmtiThreadState::Alive,
28 sys::JVMTI_THREAD_STATE_TERMINATED => JvmtiThreadState::Terminated,
29 sys::JVMTI_THREAD_STATE_RUNNABLE => JvmtiThreadState::Runnable,
30 sys::JVMTI_THREAD_STATE_BLOCKED_ON_MONITOR_ENTER => JvmtiThreadState::BlockedOnMonitorEnter,
31 sys::JVMTI_THREAD_STATE_WAITING => JvmtiThreadState::Waiting,
32 sys::JVMTI_THREAD_STATE_WAITING_INDEFINITELY => JvmtiThreadState::WaitingIndefinitely,
33 sys::JVMTI_THREAD_STATE_WAITING_WITH_TIMEOUT => JvmtiThreadState::WaitingWithTimeout,
34 sys::JVMTI_THREAD_STATE_SLEEPING => JvmtiThreadState::Sleeping,
35 sys::JVMTI_THREAD_STATE_IN_OBJECT_WAIT => JvmtiThreadState::InObjectWait,
36 sys::JVMTI_THREAD_STATE_PARKED => JvmtiThreadState::Parked,
37 sys::JVMTI_THREAD_STATE_SUSPENDED => JvmtiThreadState::Suspended,
38 sys::JVMTI_THREAD_STATE_INTERRUPTED => JvmtiThreadState::Interrupted,
39 sys::JVMTI_THREAD_STATE_IN_NATIVE => JvmtiThreadState::InNative,
40 sys::JVMTI_THREAD_STATE_VENDOR_1 => JvmtiThreadState::Vendor1,
41 sys::JVMTI_THREAD_STATE_VENDOR_2 => JvmtiThreadState::Vendor2,
42 sys::JVMTI_THREAD_STATE_VENDOR_3 => JvmtiThreadState::Vendor3,
43 _ => JvmtiThreadState::Unsupported(value)
44 }
45 }
46}
47
48impl From<JvmtiThreadState> for sys::jvmtiThreadState {
49 fn from(value: JvmtiThreadState) -> Self {
50 match value {
51 JvmtiThreadState::Alive => sys::JVMTI_THREAD_STATE_ALIVE,
52 JvmtiThreadState::Terminated => sys::JVMTI_THREAD_STATE_TERMINATED,
53 JvmtiThreadState::Runnable => sys::JVMTI_THREAD_STATE_RUNNABLE,
54 JvmtiThreadState::BlockedOnMonitorEnter => sys::JVMTI_THREAD_STATE_BLOCKED_ON_MONITOR_ENTER,
55 JvmtiThreadState::Waiting => sys::JVMTI_THREAD_STATE_WAITING,
56 JvmtiThreadState::WaitingIndefinitely => sys::JVMTI_THREAD_STATE_WAITING_INDEFINITELY,
57 JvmtiThreadState::WaitingWithTimeout => sys::JVMTI_THREAD_STATE_WAITING_WITH_TIMEOUT,
58 JvmtiThreadState::Sleeping => sys::JVMTI_THREAD_STATE_SLEEPING,
59 JvmtiThreadState::InObjectWait => sys::JVMTI_THREAD_STATE_IN_OBJECT_WAIT,
60 JvmtiThreadState::Parked => sys::JVMTI_THREAD_STATE_PARKED,
61 JvmtiThreadState::Suspended => sys::JVMTI_THREAD_STATE_SUSPENDED,
62 JvmtiThreadState::Interrupted => sys::JVMTI_THREAD_STATE_INTERRUPTED,
63 JvmtiThreadState::InNative => sys::JVMTI_THREAD_STATE_IN_NATIVE,
64 JvmtiThreadState::Vendor1 => sys::JVMTI_THREAD_STATE_VENDOR_1,
65 JvmtiThreadState::Vendor2 => sys::JVMTI_THREAD_STATE_VENDOR_2,
66 JvmtiThreadState::Vendor3 => sys::JVMTI_THREAD_STATE_VENDOR_3,
67 _ => sys::JVMTI_CONSTANT_UNSUPPORTED,
68 }
69 }
70}