< prev index next > src/hotspot/share/classfile/javaClasses.cpp
Print this page
int java_lang_VirtualThread::_continuation_offset;
int java_lang_VirtualThread::_state_offset;
int java_lang_VirtualThread::_next_offset;
int java_lang_VirtualThread::_onWaitingList_offset;
int java_lang_VirtualThread::_notified_offset;
+ int java_lang_VirtualThread::_interruptible_wait_offset;
int java_lang_VirtualThread::_timeout_offset;
int java_lang_VirtualThread::_objectWaiter_offset;
#define VTHREAD_FIELDS_DO(macro) \
macro(static_vthread_scope_offset, k, "VTHREAD_SCOPE", continuationscope_signature, true); \
macro(_continuation_offset, k, "cont", continuation_signature, false); \
macro(_state_offset, k, "state", int_signature, false); \
macro(_next_offset, k, "next", vthread_signature, false); \
macro(_onWaitingList_offset, k, "onWaitingList", bool_signature, false); \
macro(_notified_offset, k, "notified", bool_signature, false); \
+ macro(_interruptible_wait_offset, k, "interruptableWait", bool_signature, false); \
macro(_timeout_offset, k, "timeout", long_signature, false);
void java_lang_VirtualThread::compute_offsets() {
InstanceKlass* k = vmClasses::VirtualThread_klass();
bool java_lang_VirtualThread::is_instance(oop obj) {
return obj != nullptr && is_subclass(obj->klass());
}
oop java_lang_VirtualThread::carrier_thread(oop vthread) {
! oop thread = vthread->obj_field(_carrierThread_offset);
return thread;
}
oop java_lang_VirtualThread::continuation(oop vthread) {
oop cont = vthread->obj_field(_continuation_offset);
bool java_lang_VirtualThread::is_instance(oop obj) {
return obj != nullptr && is_subclass(obj->klass());
}
oop java_lang_VirtualThread::carrier_thread(oop vthread) {
! oop thread = vthread->obj_field_acquire(_carrierThread_offset);
return thread;
}
oop java_lang_VirtualThread::continuation(oop vthread) {
oop cont = vthread->obj_field(_continuation_offset);
void java_lang_VirtualThread::set_notified(oop vthread, jboolean value) {
vthread->bool_field_put_volatile(_notified_offset, value);
}
+ void java_lang_VirtualThread::set_interruptible_wait(oop vthread, jboolean value) {
+ vthread->bool_field_put_volatile(_interruptible_wait_offset, value);
+ }
+
jlong java_lang_VirtualThread::timeout(oop vthread) {
return vthread->long_field(_timeout_offset);
}
void java_lang_VirtualThread::set_timeout(oop vthread, jlong value) {
< prev index next >