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(),
|