46
47 class javaVFrame;
48 class JavaThread;
49
50 // should match Continuation.pinnedReason() in Continuation.java
51 enum freeze_result {
52 freeze_ok = 0,
53 freeze_ok_bottom = 1,
54 freeze_pinned_cs = 2,
55 freeze_pinned_native = 3,
56 freeze_pinned_monitor = 4,
57 freeze_exception = 5,
58 freeze_not_mounted = 6,
59 freeze_unsupported = 7
60 };
61
62 class Continuation : AllStatic {
63 public:
64
65 enum preempt_kind {
66 freeze_on_monitorenter,
67 freeze_on_wait
68 };
69
70 enum thaw_kind {
71 thaw_top = 0,
72 thaw_return_barrier = 1,
73 thaw_return_barrier_exception = 2,
74 };
75
76 static bool is_thaw_return_barrier(thaw_kind kind) {
77 return kind != thaw_top;
78 }
79
80 static bool is_thaw_return_barrier_exception(thaw_kind kind) {
81 bool r = (kind == thaw_return_barrier_exception);
82 assert(!r || is_thaw_return_barrier(kind), "must be");
83 return r;
84 }
85
86 static void init();
87
|
46
47 class javaVFrame;
48 class JavaThread;
49
50 // should match Continuation.pinnedReason() in Continuation.java
51 enum freeze_result {
52 freeze_ok = 0,
53 freeze_ok_bottom = 1,
54 freeze_pinned_cs = 2,
55 freeze_pinned_native = 3,
56 freeze_pinned_monitor = 4,
57 freeze_exception = 5,
58 freeze_not_mounted = 6,
59 freeze_unsupported = 7
60 };
61
62 class Continuation : AllStatic {
63 public:
64
65 enum preempt_kind {
66 monitorenter,
67 object_wait,
68 object_locker
69 };
70
71 enum thaw_kind {
72 thaw_top = 0,
73 thaw_return_barrier = 1,
74 thaw_return_barrier_exception = 2,
75 };
76
77 static bool is_thaw_return_barrier(thaw_kind kind) {
78 return kind != thaw_top;
79 }
80
81 static bool is_thaw_return_barrier_exception(thaw_kind kind) {
82 bool r = (kind == thaw_return_barrier_exception);
83 assert(!r || is_thaw_return_barrier(kind), "must be");
84 return r;
85 }
86
87 static void init();
88
|