575 NEW = 0,
576 STARTED = 1,
577 RUNNING = 2,
578 PARKING = 3,
579 PARKED = 4,
580 PINNED = 5,
581 TIMED_PARKING = 6,
582 TIMED_PARKED = 7,
583 TIMED_PINNED = 8,
584 UNPARKED = 9,
585 YIELDING = 10,
586 YIELDED = 11,
587 BLOCKING = 12,
588 BLOCKED = 13,
589 UNBLOCKED = 14,
590 WAITING = 15,
591 WAIT = 16, // waiting in Object.wait
592 TIMED_WAITING = 17,
593 TIMED_WAIT = 18, // waiting in timed-Object.wait
594 TERMINATED = 99,
595
596 // additional state bits
597 SUSPENDED = 1 << 8, // suspended when unmounted
598 };
599
600 static void compute_offsets();
601 static void serialize_offsets(SerializeClosure* f) NOT_CDS_RETURN;
602
603 // Testers
604 static bool is_subclass(Klass* klass) {
605 return klass->is_subclass_of(vmClasses::VirtualThread_klass());
606 }
607 static bool is_instance(oop obj);
608
609 static oop vthread_scope();
610 static oop carrier_thread(oop vthread);
611 static oop continuation(oop vthread);
612 static int state(oop vthread);
613 static void set_state(oop vthread, int state);
614 static int cmpxchg_state(oop vthread, int old_state, int new_state);
615 static oop next(oop vthread);
616 static void set_next(oop vthread, oop next_vthread);
617 static bool set_onWaitingList(oop vthread, OopHandle& list_head);
|
575 NEW = 0,
576 STARTED = 1,
577 RUNNING = 2,
578 PARKING = 3,
579 PARKED = 4,
580 PINNED = 5,
581 TIMED_PARKING = 6,
582 TIMED_PARKED = 7,
583 TIMED_PINNED = 8,
584 UNPARKED = 9,
585 YIELDING = 10,
586 YIELDED = 11,
587 BLOCKING = 12,
588 BLOCKED = 13,
589 UNBLOCKED = 14,
590 WAITING = 15,
591 WAIT = 16, // waiting in Object.wait
592 TIMED_WAITING = 17,
593 TIMED_WAIT = 18, // waiting in timed-Object.wait
594 TERMINATED = 99,
595 };
596
597 static void compute_offsets();
598 static void serialize_offsets(SerializeClosure* f) NOT_CDS_RETURN;
599
600 // Testers
601 static bool is_subclass(Klass* klass) {
602 return klass->is_subclass_of(vmClasses::VirtualThread_klass());
603 }
604 static bool is_instance(oop obj);
605
606 static oop vthread_scope();
607 static oop carrier_thread(oop vthread);
608 static oop continuation(oop vthread);
609 static int state(oop vthread);
610 static void set_state(oop vthread, int state);
611 static int cmpxchg_state(oop vthread, int old_state, int new_state);
612 static oop next(oop vthread);
613 static void set_next(oop vthread, oop next_vthread);
614 static bool set_onWaitingList(oop vthread, OopHandle& list_head);
|