< prev index next >

src/java.base/aix/native/libjsig/jsig.c

Print this page

        

*** 35,44 **** --- 35,45 ---- #include <dlfcn.h> #include <pthread.h> #include <stdio.h> #include <stdlib.h> #include <stdint.h> + #include "jni.h" #define bool int #define true 1 #define false 0
*** 138,152 **** signal_unlock(); return oldhandler; } } ! sa_handler_t signal(int sig, sa_handler_t disp) { return set_signal(sig, disp, false); } ! sa_handler_t sigset(int sig, sa_handler_t disp) { return set_signal(sig, disp, true); } static int call_os_sigaction(int sig, const struct sigaction *act, struct sigaction *oact) { --- 139,155 ---- signal_unlock(); return oldhandler; } } ! JNIEXPORT sa_handler_t JNICALL ! signal(int sig, sa_handler_t disp) { return set_signal(sig, disp, false); } ! JNIEXPORT sa_handler_t JNICALL ! sigset(int sig, sa_handler_t disp) { return set_signal(sig, disp, true); } static int call_os_sigaction(int sig, const struct sigaction *act, struct sigaction *oact) {
*** 159,169 **** } } return (*os_sigaction)(sig, act, oact); } ! int sigaction(int sig, const struct sigaction *act, struct sigaction *oact) { int res; bool sigused; struct sigaction oldAct; signal_lock(); --- 162,173 ---- } } return (*os_sigaction)(sig, act, oact); } ! JNIEXPORT int JNICALL ! sigaction(int sig, const struct sigaction *act, struct sigaction *oact) { int res; bool sigused; struct sigaction oldAct; signal_lock();
*** 204,230 **** return res; } } /* The three functions for the jvm to call into. */ ! void JVM_begin_signal_setting() { signal_lock(); sigemptyset(&jvmsigs); jvm_signal_installing = true; tid = pthread_self(); signal_unlock(); } ! void JVM_end_signal_setting() { signal_lock(); jvm_signal_installed = true; jvm_signal_installing = false; pthread_cond_broadcast(&cond); signal_unlock(); } ! struct sigaction *JVM_get_signal_action(int sig) { /* Does race condition make sense here? */ if (sigismember(&jvmsigs, sig)) { return &sact[sig]; } return NULL; --- 208,237 ---- return res; } } /* The three functions for the jvm to call into. */ ! JNIEXPORT void JNICALL ! JVM_begin_signal_setting() { signal_lock(); sigemptyset(&jvmsigs); jvm_signal_installing = true; tid = pthread_self(); signal_unlock(); } ! JNIEXPORT void JNICALL ! JVM_end_signal_setting() { signal_lock(); jvm_signal_installed = true; jvm_signal_installing = false; pthread_cond_broadcast(&cond); signal_unlock(); } ! JNIEXPORT struct sigaction * JNICALL ! JVM_get_signal_action(int sig) { /* Does race condition make sense here? */ if (sigismember(&jvmsigs, sig)) { return &sact[sig]; } return NULL;
< prev index next >