- Timestamp:
- Mar 8, 2012, 2:46:46 PM (13 years ago)
- Location:
- trunk/openjdk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/openjdk/hotspot/src/share/tools/launcher/java.c
r309 r341 79 79 #include <string.h> 80 80 81 #ifdef __OS2__ 82 #include <float.h> // for _control87 83 #endif 84 81 85 #include <jni.h> 82 86 #include <jvm.h> … … 387 391 args.ifn = ifn; 388 392 393 #ifdef __OS2__ 394 // On OS/2, both Ctrl-C and process termination handlers (including DLL 395 // uninitialization code) are always called on thread 1. If we fire off 396 // a new thread here and create the JVM on it (as other platfroms do), 397 // thread 1 will be not known to the JVM and this can cause various 398 // nexpected side-effects like hangs and crashes at Java process 399 // termination (see #33 and #159 for details). For this reason, we instead 400 // create the JVM right on thread 1. 401 402 // disable FPU exceptions (taken from jdk/src/windows/hpi/src/system_md.c) 403 _control87(MCW_EM | RC_NEAR | PC_53, MCW_EM | MCW_RC | MCW_PC); 404 405 return JavaMain(&args); 406 #else 389 407 return ContinueInNewThread(JavaMain, threadStackSize, (void*)&args); 408 #endif 390 409 } 391 410 } -
trunk/openjdk/jdk/src/share/bin/java.c
r333 r341 58 58 #include <string.h> 59 59 60 #ifdef __OS2__ 61 #include <float.h> // for _control87 62 #endif 63 60 64 #include <jni.h> 61 65 #include <jvm.h> … … 368 372 args.ifn = ifn; 369 373 374 #ifdef __OS2__ 375 // On OS/2, both Ctrl-C and process termination handlers (including DLL 376 // uninitialization code) are always called on thread 1. If we fire off 377 // a new thread here and create the JVM on it (as other platfroms do), 378 // thread 1 will be not known to the JVM and this can cause various 379 // nexpected side-effects like hangs and crashes at Java process 380 // termination (see #33 and #159 for details). For this reason, we instead 381 // create the JVM right on thread 1. 382 383 // disable FPU exceptions (taken from jdk/src/windows/hpi/src/system_md.c) 384 _control87(MCW_EM | RC_NEAR | PC_53, MCW_EM | MCW_RC | MCW_PC); 385 386 return JavaMain(&args); 387 #else 370 388 return ContinueInNewThread(JavaMain, threadStackSize, (void*)&args, ret); 389 #endif 371 390 } 372 391 }
Note:
See TracChangeset
for help on using the changeset viewer.