< prev index next >

src/share/vm/runtime/os.cpp

Print this page
rev 9399 : imported patch 8133023_vm_init_before_ergo


 298             const char* sig_name = "UNKNOWN";
 299             InstanceKlass::cast(PENDING_EXCEPTION->klass())->
 300               name()->as_klass_external_name(klass_name, 256);
 301             if (os::exception_name(sig, tmp_sig_name, 16) != NULL)
 302               sig_name = tmp_sig_name;
 303             warning("Exception %s occurred dispatching signal %s to handler"
 304                     "- the VM may need to be forcibly terminated",
 305                     klass_name, sig_name );
 306           }
 307           CLEAR_PENDING_EXCEPTION;
 308         }
 309       }
 310     }
 311   }
 312 }
 313 
 314 void os::init_before_ergo() {
 315   // We need to initialize large page support here because ergonomics takes some
 316   // decisions depending on large page support and the calculated large page size.
 317   large_page_init();


 318 }
 319 
 320 void os::signal_init() {
 321   if (!ReduceSignalUsage) {
 322     // Setup JavaThread for processing signals
 323     EXCEPTION_MARK;
 324     Klass* k = SystemDictionary::resolve_or_fail(vmSymbols::java_lang_Thread(), true, CHECK);
 325     instanceKlassHandle klass (THREAD, k);
 326     instanceHandle thread_oop = klass->allocate_instance_handle(CHECK);
 327 
 328     const char thread_name[] = "Signal Dispatcher";
 329     Handle string = java_lang_String::create_from_str(thread_name, CHECK);
 330 
 331     // Initialize thread_oop to put it into the system threadGroup
 332     Handle thread_group (THREAD, Universe::system_thread_group());
 333     JavaValue result(T_VOID);
 334     JavaCalls::call_special(&result, thread_oop,
 335                            klass,
 336                            vmSymbols::object_initializer_name(),
 337                            vmSymbols::threadgroup_string_void_signature(),




 298             const char* sig_name = "UNKNOWN";
 299             InstanceKlass::cast(PENDING_EXCEPTION->klass())->
 300               name()->as_klass_external_name(klass_name, 256);
 301             if (os::exception_name(sig, tmp_sig_name, 16) != NULL)
 302               sig_name = tmp_sig_name;
 303             warning("Exception %s occurred dispatching signal %s to handler"
 304                     "- the VM may need to be forcibly terminated",
 305                     klass_name, sig_name );
 306           }
 307           CLEAR_PENDING_EXCEPTION;
 308         }
 309       }
 310     }
 311   }
 312 }
 313 
 314 void os::init_before_ergo() {
 315   // We need to initialize large page support here because ergonomics takes some
 316   // decisions depending on large page support and the calculated large page size.
 317   large_page_init();
 318 
 319   VM_Version::vm_init_before_ergo();
 320 }
 321 
 322 void os::signal_init() {
 323   if (!ReduceSignalUsage) {
 324     // Setup JavaThread for processing signals
 325     EXCEPTION_MARK;
 326     Klass* k = SystemDictionary::resolve_or_fail(vmSymbols::java_lang_Thread(), true, CHECK);
 327     instanceKlassHandle klass (THREAD, k);
 328     instanceHandle thread_oop = klass->allocate_instance_handle(CHECK);
 329 
 330     const char thread_name[] = "Signal Dispatcher";
 331     Handle string = java_lang_String::create_from_str(thread_name, CHECK);
 332 
 333     // Initialize thread_oop to put it into the system threadGroup
 334     Handle thread_group (THREAD, Universe::system_thread_group());
 335     JavaValue result(T_VOID);
 336     JavaCalls::call_special(&result, thread_oop,
 337                            klass,
 338                            vmSymbols::object_initializer_name(),
 339                            vmSymbols::threadgroup_string_void_signature(),


< prev index next >