version 1.91, 2015/08/19 05:29:23 |
version 1.93, 2016/08/24 08:21:03 |
|
|
* DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, |
* DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, |
* PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. |
* PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. |
* |
* |
* $OpenXM: OpenXM_contrib2/asir2000/parse/glob.c,v 1.90 2015/08/14 13:51:56 fujimoto Exp $ |
* $OpenXM: OpenXM_contrib2/asir2000/parse/glob.c,v 1.92 2016/08/24 05:33:58 ohara Exp $ |
*/ |
*/ |
#include "ca.h" |
#include "ca.h" |
#include "al.h" |
#include "al.h" |
#include "parse.h" |
#include "parse.h" |
#include "ox.h" |
#include "ox.h" |
|
#include <signal.h> |
#if !defined(VISUAL) && !defined(__MINGW32__) && !defined(_PA_RISC1_1) && !defined(linux) && !defined(SYSV) && !defined(__CYGWIN__) && !defined(__INTERIX) && !defined(__FreeBSD__) |
#if !defined(VISUAL) && !defined(__MINGW32__) && !defined(_PA_RISC1_1) && !defined(linux) && !defined(SYSV) && !defined(__CYGWIN__) && !defined(__INTERIX) && !defined(__FreeBSD__) |
#include <sgtty.h> |
#include <sgtty.h> |
#endif |
#endif |
Line 247 void asir_terminate(int status) |
|
Line 248 void asir_terminate(int status) |
|
mpi_finalize(); |
mpi_finalize(); |
#else |
#else |
#if defined(SIGPIPE) |
#if defined(SIGPIPE) |
signal(SIGPIPE,SIG_IGN); |
set_signal(SIGPIPE,SIG_IGN); |
#endif |
#endif |
close_allconnections(); |
close_allconnections(); |
#endif |
#endif |
Line 429 void process_args(int ac,char **av) |
|
Line 430 void process_args(int ac,char **av) |
|
#endif |
#endif |
} |
} |
|
|
#include <signal.h> |
#if defined(HAVE_SIGACTION) |
|
void (*set_signal(int sig, void (*handler)(int)))(int) |
|
{ |
|
struct sigaction act; |
|
struct sigaction oldact; |
|
if (handler == SIG_IGN || handler == SIG_DFL) { |
|
return signal(sig,handler); |
|
} |
|
act.sa_handler=handler; |
|
act.sa_flags=0; |
|
act.sa_flags |= SA_RESTART; |
|
sigemptyset(&act.sa_mask); |
|
sigaction(sig,&act,&oldact); |
|
return oldact.sa_handler; |
|
} |
|
#endif |
|
|
void sig_init() { |
void sig_init() { |
#if !defined(VISUAL) && !defined(__MINGW32__) |
#if !defined(VISUAL) && !defined(__MINGW32__) |
signal(SIGINT,int_handler); |
set_signal(SIGINT,int_handler); |
#else |
#else |
void register_ctrlc_handler(); |
void register_ctrlc_handler(); |
|
|
register_ctrlc_handler(); |
register_ctrlc_handler(); |
#endif |
#endif |
signal(SIGSEGV,segv_handler); |
set_signal(SIGSEGV,segv_handler); |
|
|
#if defined(SIGFPE) |
#if defined(SIGFPE) |
signal(SIGFPE,fpe_handler); |
set_signal(SIGFPE,fpe_handler); |
#endif |
#endif |
|
|
#if defined(SIGPIPE) |
#if defined(SIGPIPE) |
signal(SIGPIPE,pipe_handler); |
set_signal(SIGPIPE,pipe_handler); |
#endif |
#endif |
|
|
#if defined(SIGILL) |
#if defined(SIGILL) |
signal(SIGILL,ill_handler); |
set_signal(SIGILL,ill_handler); |
#endif |
#endif |
|
|
#if !defined(VISUAL) && !defined(__MINGW32__) |
#if !defined(VISUAL) && !defined(__MINGW32__) |
signal(SIGBUS,bus_handler); |
set_signal(SIGBUS,bus_handler); |
#endif |
#endif |
} |
} |
|
|
static void (*old_int)(int); |
static void (*old_int)(int); |
|
|
void asir_save_handler() { |
void asir_save_handler() { |
old_int = signal(SIGINT,SIG_IGN); |
old_int = set_signal(SIGINT,SIG_IGN); |
signal(SIGINT,old_int); |
set_signal(SIGINT,old_int); |
} |
} |
|
|
void asir_set_handler() { |
void asir_set_handler() { |
signal(SIGINT,int_handler); |
set_signal(SIGINT,int_handler); |
} |
} |
|
|
void asir_reset_handler() { |
void asir_reset_handler() { |
signal(SIGINT,old_int); |
set_signal(SIGINT,old_int); |
} |
} |
|
|
extern int I_am_server; |
extern int I_am_server; |
Line 532 void int_handler(int sig) |
|
Line 548 void int_handler(int sig) |
|
#if defined(VISUAL) || defined(__MINGW32__) |
#if defined(VISUAL) || defined(__MINGW32__) |
suspend_timer(); |
suspend_timer(); |
#endif |
#endif |
signal(SIGINT,SIG_IGN); |
set_signal(SIGINT,SIG_IGN); |
#if !defined(VISUAL) && !defined(__MINGW32__) |
#if !defined(VISUAL) && !defined(__MINGW32__) |
if ( do_server_in_X11 ) { |
if ( do_server_in_X11 ) { |
debug(PVSS?((VS)BDY(PVSS))->usrf->f.usrf->body:0); |
debug(PVSS?((VS)BDY(PVSS))->usrf->f.usrf->body:0); |
Line 645 void restore_handler() { |
|
Line 661 void restore_handler() { |
|
resume_timer(); |
resume_timer(); |
#endif |
#endif |
#if defined(SIGINT) |
#if defined(SIGINT) |
signal(SIGINT,int_handler); |
set_signal(SIGINT,int_handler); |
#endif |
#endif |
} |
} |
|
|
void segv_handler(int sig) |
void segv_handler(int sig) |
{ |
{ |
#if defined(SIGSEGV) |
#if defined(SIGSEGV) |
signal(SIGSEGV,segv_handler); |
set_signal_for_restart(SIGSEGV,segv_handler); |
error("internal error (SEGV)"); |
error("internal error (SEGV)"); |
#endif |
#endif |
} |
} |
Line 660 void segv_handler(int sig) |
|
Line 676 void segv_handler(int sig) |
|
void ill_handler(int sig) |
void ill_handler(int sig) |
{ |
{ |
#if defined(SIGILL) |
#if defined(SIGILL) |
signal(SIGILL,ill_handler); |
set_signal_for_restart(SIGILL,ill_handler); |
error("illegal instruction (ILL)"); |
error("illegal instruction (ILL)"); |
#endif |
#endif |
} |
} |
Line 685 void alrm_handler(int sig) |
|
Line 701 void alrm_handler(int sig) |
|
void bus_handler(int sig) |
void bus_handler(int sig) |
{ |
{ |
#if defined(SIGBUS) |
#if defined(SIGBUS) |
signal(SIGBUS,bus_handler); |
set_signal_for_restart(SIGBUS,bus_handler); |
error("internal error (BUS ERROR)"); |
error("internal error (BUS ERROR)"); |
#endif |
#endif |
} |
} |
Line 693 void bus_handler(int sig) |
|
Line 709 void bus_handler(int sig) |
|
void fpe_handler(int sig) |
void fpe_handler(int sig) |
{ |
{ |
#if defined(SIGFPE) |
#if defined(SIGFPE) |
signal(SIGFPE,fpe_handler); |
set_signal_for_restart(SIGFPE,fpe_handler); |
error("internal error (FPE)"); |
error("internal error (FPE)"); |
#endif |
#endif |
} |
} |
Line 701 void fpe_handler(int sig) |
|
Line 717 void fpe_handler(int sig) |
|
void pipe_handler(int sig) |
void pipe_handler(int sig) |
{ |
{ |
#if defined(SIGPIPE) |
#if defined(SIGPIPE) |
signal(SIGPIPE,pipe_handler); |
set_signal_for_restart(SIGPIPE,pipe_handler); |
end_critical(); |
end_critical(); |
error("internal error (BROKEN PIPE)"); |
error("internal error (BROKEN PIPE)"); |
#endif |
#endif |
Line 802 void set_timer(int interval) |
|
Line 818 void set_timer(int interval) |
|
it.it_value.tv_sec = interval; |
it.it_value.tv_sec = interval; |
it.it_value.tv_usec = 0; |
it.it_value.tv_usec = 0; |
setitimer(ITIMER_TYPE,&it,0); |
setitimer(ITIMER_TYPE,&it,0); |
signal(SIGNAL_FOR_TIMER,alrm_handler); |
set_signal(SIGNAL_FOR_TIMER,alrm_handler); |
timer_is_set = 1; |
timer_is_set = 1; |
} |
} |
|
|
Line 815 void reset_timer() |
|
Line 831 void reset_timer() |
|
it.it_value.tv_sec = 0; |
it.it_value.tv_sec = 0; |
it.it_value.tv_usec = 0; |
it.it_value.tv_usec = 0; |
setitimer(ITIMER_TYPE,&it,0); |
setitimer(ITIMER_TYPE,&it,0); |
signal(SIGNAL_FOR_TIMER,SIG_IGN); |
set_signal(SIGNAL_FOR_TIMER,SIG_IGN); |
timer_is_set = 0; |
timer_is_set = 0; |
} |
} |
#endif |
#endif |
Line 874 void check_intr() |
|
Line 890 void check_intr() |
|
if ( recv_intr ) { |
if ( recv_intr ) { |
if ( recv_intr == 1 ) { |
if ( recv_intr == 1 ) { |
recv_intr = 0; |
recv_intr = 0; |
int_handler(0); |
int_handler(SIGINT); |
} else { |
} else { |
recv_intr = 0; |
recv_intr = 0; |
ox_usr1_handler(0); |
ox_usr1_handler(0); |