< prev index next >
src/hotspot/share/runtime/os.cpp
Print this page
*** 444,478 ****
}
void os::signal_init(TRAPS) {
if (!ReduceSignalUsage) {
// Setup JavaThread for processing signals
- Klass* k = SystemDictionary::resolve_or_fail(vmSymbols::java_lang_Thread(), true, CHECK);
- InstanceKlass* ik = InstanceKlass::cast(k);
- instanceHandle thread_oop = ik->allocate_instance_handle(CHECK);
-
const char thread_name[] = "Signal Dispatcher";
Handle string = java_lang_String::create_from_str(thread_name, CHECK);
// Initialize thread_oop to put it into the system threadGroup
Handle thread_group (THREAD, Universe::system_thread_group());
! JavaValue result(T_VOID);
! JavaCalls::call_special(&result, thread_oop,
! ik,
! vmSymbols::object_initializer_name(),
vmSymbols::threadgroup_string_void_signature(),
thread_group,
string,
CHECK);
Klass* group = SystemDictionary::ThreadGroup_klass();
JavaCalls::call_special(&result,
thread_group,
group,
vmSymbols::add_method_name(),
vmSymbols::thread_void_signature(),
! thread_oop, // ARG 1
CHECK);
os::signal_init_pd();
{ MutexLocker mu(Threads_lock);
--- 444,472 ----
}
void os::signal_init(TRAPS) {
if (!ReduceSignalUsage) {
// Setup JavaThread for processing signals
const char thread_name[] = "Signal Dispatcher";
Handle string = java_lang_String::create_from_str(thread_name, CHECK);
// Initialize thread_oop to put it into the system threadGroup
Handle thread_group (THREAD, Universe::system_thread_group());
! Handle thread_oop = JavaCalls::construct_new_instance(SystemDictionary::Thread_klass(),
vmSymbols::threadgroup_string_void_signature(),
thread_group,
string,
CHECK);
Klass* group = SystemDictionary::ThreadGroup_klass();
+ JavaValue result(T_VOID);
JavaCalls::call_special(&result,
thread_group,
group,
vmSymbols::add_method_name(),
vmSymbols::thread_void_signature(),
! thread_oop,
CHECK);
os::signal_init_pd();
{ MutexLocker mu(Threads_lock);
< prev index next >