1375 int java_lang_ThreadGroup::_threads_offset = 0; |
1375 int java_lang_ThreadGroup::_threads_offset = 0; |
1376 int java_lang_ThreadGroup::_groups_offset = 0; |
1376 int java_lang_ThreadGroup::_groups_offset = 0; |
1377 int java_lang_ThreadGroup::_maxPriority_offset = 0; |
1377 int java_lang_ThreadGroup::_maxPriority_offset = 0; |
1378 int java_lang_ThreadGroup::_destroyed_offset = 0; |
1378 int java_lang_ThreadGroup::_destroyed_offset = 0; |
1379 int java_lang_ThreadGroup::_daemon_offset = 0; |
1379 int java_lang_ThreadGroup::_daemon_offset = 0; |
1380 int java_lang_ThreadGroup::_vmAllowSuspension_offset = 0; |
|
1381 int java_lang_ThreadGroup::_nthreads_offset = 0; |
1380 int java_lang_ThreadGroup::_nthreads_offset = 0; |
1382 int java_lang_ThreadGroup::_ngroups_offset = 0; |
1381 int java_lang_ThreadGroup::_ngroups_offset = 0; |
1383 |
1382 |
1384 oop java_lang_ThreadGroup::parent(oop java_thread_group) { |
1383 oop java_lang_ThreadGroup::parent(oop java_thread_group) { |
1385 assert(java_thread_group->is_oop(), "thread group must be oop"); |
1384 assert(java_thread_group->is_oop(), "thread group must be oop"); |
1431 } |
1430 } |
1432 |
1431 |
1433 bool java_lang_ThreadGroup::is_daemon(oop java_thread_group) { |
1432 bool java_lang_ThreadGroup::is_daemon(oop java_thread_group) { |
1434 assert(java_thread_group->is_oop(), "thread group must be oop"); |
1433 assert(java_thread_group->is_oop(), "thread group must be oop"); |
1435 return java_thread_group->bool_field(_daemon_offset) != 0; |
1434 return java_thread_group->bool_field(_daemon_offset) != 0; |
1436 } |
|
1437 |
|
1438 bool java_lang_ThreadGroup::is_vmAllowSuspension(oop java_thread_group) { |
|
1439 assert(java_thread_group->is_oop(), "thread group must be oop"); |
|
1440 return java_thread_group->bool_field(_vmAllowSuspension_offset) != 0; |
|
1441 } |
1435 } |
1442 |
1436 |
1443 void java_lang_ThreadGroup::compute_offsets() { |
1437 void java_lang_ThreadGroup::compute_offsets() { |
1444 assert(_parent_offset == 0, "offsets should be initialized only once"); |
1438 assert(_parent_offset == 0, "offsets should be initialized only once"); |
1445 |
1439 |
1450 compute_offset(_threads_offset, k, vmSymbols::threads_name(), vmSymbols::thread_array_signature()); |
1444 compute_offset(_threads_offset, k, vmSymbols::threads_name(), vmSymbols::thread_array_signature()); |
1451 compute_offset(_groups_offset, k, vmSymbols::groups_name(), vmSymbols::threadgroup_array_signature()); |
1445 compute_offset(_groups_offset, k, vmSymbols::groups_name(), vmSymbols::threadgroup_array_signature()); |
1452 compute_offset(_maxPriority_offset, k, vmSymbols::maxPriority_name(), vmSymbols::int_signature()); |
1446 compute_offset(_maxPriority_offset, k, vmSymbols::maxPriority_name(), vmSymbols::int_signature()); |
1453 compute_offset(_destroyed_offset, k, vmSymbols::destroyed_name(), vmSymbols::bool_signature()); |
1447 compute_offset(_destroyed_offset, k, vmSymbols::destroyed_name(), vmSymbols::bool_signature()); |
1454 compute_offset(_daemon_offset, k, vmSymbols::daemon_name(), vmSymbols::bool_signature()); |
1448 compute_offset(_daemon_offset, k, vmSymbols::daemon_name(), vmSymbols::bool_signature()); |
1455 compute_offset(_vmAllowSuspension_offset, k, vmSymbols::vmAllowSuspension_name(), vmSymbols::bool_signature()); |
|
1456 compute_offset(_nthreads_offset, k, vmSymbols::nthreads_name(), vmSymbols::int_signature()); |
1449 compute_offset(_nthreads_offset, k, vmSymbols::nthreads_name(), vmSymbols::int_signature()); |
1457 compute_offset(_ngroups_offset, k, vmSymbols::ngroups_name(), vmSymbols::int_signature()); |
1450 compute_offset(_ngroups_offset, k, vmSymbols::ngroups_name(), vmSymbols::int_signature()); |
1458 } |
1451 } |
1459 |
1452 |
1460 |
1453 |