comparison src/os_cpu/linux_x86/vm/os_linux_x86.cpp @ 11151:5e3b6f79d280

8020701: Avoid crashes in WatcherThread Reviewed-by: acorn, dcubed, dsimms
author rbackman
date Wed, 17 Jul 2013 13:48:15 +0200
parents 9ba41a4a71ff
children af21010d1062
comparison
equal deleted inserted replaced
11150:c29568b733d2 11151:5e3b6f79d280
222 void* ucVoid, 222 void* ucVoid,
223 int abort_if_unrecognized) { 223 int abort_if_unrecognized) {
224 ucontext_t* uc = (ucontext_t*) ucVoid; 224 ucontext_t* uc = (ucontext_t*) ucVoid;
225 225
226 Thread* t = ThreadLocalStorage::get_thread_slow(); 226 Thread* t = ThreadLocalStorage::get_thread_slow();
227
228 // Must do this before SignalHandlerMark, if crash protection installed we will longjmp away
229 // (no destructors can be run)
230 os::WatcherThreadCrashProtection::check_crash_protection(sig, t);
227 231
228 SignalHandlerMark shm(t); 232 SignalHandlerMark shm(t);
229 233
230 // Note: it's not uncommon that JNI code uses signal/sigset to install 234 // Note: it's not uncommon that JNI code uses signal/sigset to install
231 // then restore certain signal handler (e.g. to temporarily block SIGPIPE, 235 // then restore certain signal handler (e.g. to temporarily block SIGPIPE,