=================================================================== RCS file: /home/cvs/OpenXM/src/kxx/oxserver00.c,v retrieving revision 1.17 retrieving revision 1.24 diff -u -p -r1.17 -r1.24 --- OpenXM/src/kxx/oxserver00.c 2013/11/06 06:23:24 1.17 +++ OpenXM/src/kxx/oxserver00.c 2016/08/28 02:43:15 1.24 @@ -1,4 +1,4 @@ -/* $OpenXM: OpenXM/src/kxx/oxserver00.c,v 1.16 2004/09/17 02:42:58 takayama Exp $ */ +/* $OpenXM: OpenXM/src/kxx/oxserver00.c,v 1.23 2016/03/31 05:27:34 takayama Exp $ */ /* nullserver01 */ #include #include @@ -8,6 +8,7 @@ #include #include #include +#include /* -lnsl -lsocket /usr/ucblib/libucb.a */ #include "ox_kan.h" #include "serversm.h" @@ -23,7 +24,7 @@ extern int OXprintMessage; /* print oxmessages? */ extern int Calling_ctrlC_hook; extern int RestrictedMode, RestrictedMode_saved; -#if defined(__CYGWIN__) +#if defined(__CYGWIN__) || defined(__MSYS__) sigjmp_buf EnvOfChildServer; #else jmp_buf EnvOfChildServer; @@ -99,7 +100,7 @@ nullserver(int fdStreamIn,int fdStreamOut) { ox_stream ostreamOut; char sreason[1024]; extern void controlResetHandler(); -#if defined(__CYGWIN__) +#if defined(__CYGWIN__) || defined(__MSYS__) extern sigjmp_buf EnvOfStackMachine; #else extern jmp_buf EnvOfStackMachine; @@ -131,11 +132,14 @@ nullserver(int fdStreamIn,int fdStreamOut) { if (PacketMonitor) fp2watch(ostreamOut,stdout); } + /* fprintf(stderr,"Hello world.\n"); OXprintMessage = 1; + JmpMessage = 1; */ + aaa : ; #if defined(__CYGWIN__) - if (sigsetjmp(EnvOfChildServer,1)) { + if (MYSIGSETJMP(EnvOfChildServer,1)) { #else - if (setjmp(EnvOfChildServer)) { + if (MYSETJMP(EnvOfChildServer)) { #endif fprintf(stderr,"childServerMain: jump here.\n"); if (OxInterruptFlag == 0) { @@ -148,15 +152,15 @@ nullserver(int fdStreamIn,int fdStreamOut) { } Calling_ctrlC_hook = 0; KSexecuteString(" (Computation is interrupted.) "); - signal(SIGUSR1,controlResetHandler); goto aaa; + mysignal(SIGUSR1,controlResetHandler); goto aaa; } else { if (JmpMessage) fprintf(stderr,"Set EnvOfChildServer.\n"); - signal(SIGUSR1,controlResetHandler); + mysignal(SIGUSR1,controlResetHandler); } #if defined(__CYGWIN__) - if (sigsetjmp(EnvOfStackMachine,1)) { + if (MYSIGSETJMP(EnvOfStackMachine,1)) { #else - if (setjmp(EnvOfStackMachine)) { + if (MYSETJMP(EnvOfStackMachine)) { #endif fprintf(stderr,"childServerMain: jump here by EnvOfStackMachine or timeout.\n"); if (OxInterruptFlag == 0) { @@ -178,11 +182,11 @@ nullserver(int fdStreamIn,int fdStreamOut) { RestrictedMode = RestrictedMode_saved; } Calling_ctrlC_hook = 0; - signal(SIGUSR1,controlResetHandler); goto aaa ; + mysignal(SIGUSR1,controlResetHandler); goto aaa ; } else { if (JmpMessage) fprintf(stderr,"Set EnvOfStackMachine.\n"); - if (signal(SIGUSR1,SIG_IGN) != SIG_IGN) { - signal(SIGUSR1,controlResetHandler); + if (mysignal(SIGUSR1,SIG_IGN) != SIG_IGN) { + mysignal(SIGUSR1,controlResetHandler); } } @@ -297,7 +301,7 @@ nullserverCommand(ox_stream ostreamIn,ox_stream ostrea }else{ iresult = Sm1_executeStringByLocalParser(); } - OxCritical = 1; signal(SIGUSR1,controlResetHandler); + OxCritical = 1; mysignal(SIGUSR1,controlResetHandler); if (iresult < 0) { emsg = Sm1_popErrorMessage("executeString: "); Sm1_pushError2(SerialCurrent,-1,emsg); @@ -311,7 +315,7 @@ nullserverCommand(ox_stream ostreamIn,ox_stream ostrea }else{ iresult = Sm1_executeStringByLocalParser(); } - OxCritical = 1; signal(SIGUSR1,controlResetHandler); + OxCritical = 1; mysignal(SIGUSR1,controlResetHandler); if (iresult < 0) { emsg = Sm1_popErrorMessage("executeFunction: "); Sm1_pushError2(SerialCurrent,-1,emsg); @@ -325,7 +329,7 @@ nullserverCommand(ox_stream ostreamIn,ox_stream ostrea }else{ iresult = Sm1_executeStringByLocalParser(); } - OxCritical = 1; signal(SIGUSR1,controlResetHandler); + OxCritical = 1; mysignal(SIGUSR1,controlResetHandler); if (iresult < 0) { emsg = Sm1_popErrorMessage("executeFunctionWithOptionalArgument: "); Sm1_pushError2(SerialCurrent,-1,emsg); @@ -351,6 +355,8 @@ nullserverCommand(ox_stream ostreamIn,ox_stream ostrea fprintf(stderr,"This command has not yet been implemented.\n"); return(-1); break; + case SM_nop: + break; default: fprintf(stderr,"Fatal error. Unknown function_id %d\n",id); return(-1); @@ -372,7 +378,7 @@ nullserver_simplest(int fd) { void controlResetHandler(sig) int sig; { - signal(sig,SIG_IGN); + mysignal(sig,SIG_IGN); cancelAlarm(); fprintf(stderr,"From controlResetHandler. OxCritical = %d\n",OxCritical); OxInterruptFlag = 1; @@ -380,10 +386,10 @@ void controlResetHandler(sig) return; }else{ (void) traceShowStack(); traceClearStack(); -#if defined(__CYGWIN__) - siglongjmp(EnvOfChildServer,2); /* returns 2 for ctrl-C */ +#if defined(__CYGWIN__) || defined(__MSYS__) + MYSIGLONGJMP(EnvOfChildServer,2); /* returns 2 for ctrl-C */ #else - longjmp(EnvOfChildServer,2); /* returns 2 for ctrl-C */ + MYLONGJMP(EnvOfChildServer,2); /* returns 2 for ctrl-C */ #endif } }