45 void continuations_init();
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_exception = 4,
57 freeze_not_mounted = 5,
58 freeze_unsupported = 6
59 };
60
61 class Continuation : AllStatic {
62 public:
63
64 enum preempt_kind {
65 freeze_on_monitorenter,
66 freeze_on_wait
67 };
68
69 enum thaw_kind {
70 thaw_top = 0,
71 thaw_return_barrier = 1,
72 thaw_return_barrier_exception = 2,
73 };
74
75 static bool is_thaw_return_barrier(thaw_kind kind) {
76 return kind != thaw_top;
77 }
78
79 static bool is_thaw_return_barrier_exception(thaw_kind kind) {
80 bool r = (kind == thaw_return_barrier_exception);
81 assert(!r || is_thaw_return_barrier(kind), "must be");
82 return r;
83 }
84
85 static void init();
86
|
45 void continuations_init();
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_exception = 4,
57 freeze_not_mounted = 5,
58 freeze_unsupported = 6
59 };
60
61 class Continuation : AllStatic {
62 public:
63
64 enum preempt_kind {
65 monitorenter,
66 object_wait,
67 object_locker
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
|