src/share/vm/runtime/os.cpp

Print this page
rev 5146 : [mq]: first-patch


 297           // trigger additional out-of-memory conditions
 298           if (tty != NULL) {
 299             char klass_name[256];
 300             char tmp_sig_name[16];
 301             const char* sig_name = "UNKNOWN";
 302             InstanceKlass::cast(PENDING_EXCEPTION->klass())->
 303               name()->as_klass_external_name(klass_name, 256);
 304             if (os::exception_name(sig, tmp_sig_name, 16) != NULL)
 305               sig_name = tmp_sig_name;
 306             warning("Exception %s occurred dispatching signal %s to handler"
 307                     "- the VM may need to be forcibly terminated",
 308                     klass_name, sig_name );
 309           }
 310           CLEAR_PENDING_EXCEPTION;
 311         }
 312       }
 313     }
 314   }
 315 }
 316 





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




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