version 1.13, 2003/11/20 11:41:44 |
version 1.15, 2004/09/05 00:51:18 |
|
|
/* $OpenXM: OpenXM/src/kxx/oxserver00.c,v 1.12 2003/11/19 01:02:40 takayama Exp $ */ |
/* $OpenXM: OpenXM/src/kxx/oxserver00.c,v 1.14 2004/03/08 08:24:42 takayama Exp $ */ |
/* nullserver01 */ |
/* nullserver01 */ |
#include <stdio.h> |
#include <stdio.h> |
#include <sys/types.h> |
#include <sys/types.h> |
Line 20 int NoExecution = 0; |
|
Line 20 int NoExecution = 0; |
|
extern int SerialOX; /* Serial number of the packets sent. */ |
extern int SerialOX; /* Serial number of the packets sent. */ |
extern int SerialCurrent; /* Current Serial number of the recieved packet. */ |
extern int SerialCurrent; /* Current Serial number of the recieved packet. */ |
extern int OXprintMessage; /* print oxmessages? */ |
extern int OXprintMessage; /* print oxmessages? */ |
|
extern int Calling_ctrlC_hook; |
|
|
#if defined(__CYGWIN__) |
#if defined(__CYGWIN__) |
sigjmp_buf EnvOfChildServer; |
sigjmp_buf EnvOfChildServer; |
Line 139 nullserver(int fdStreamIn,int fdStreamOut) { |
|
Line 140 nullserver(int fdStreamIn,int fdStreamOut) { |
|
if (OxInterruptFlag == 0) { |
if (OxInterruptFlag == 0) { |
fprintf(stderr," ?! \n"); fflush(NULL); |
fprintf(stderr," ?! \n"); fflush(NULL); |
} |
} |
KSexecuteString(" ctrlC-hook "); /* Execute User Defined functions. */ |
if (!Calling_ctrlC_hook) { |
|
Calling_ctrlC_hook = 1; |
|
KSexecuteString(" ctrlC-hook "); /* Execute User Defined functions. */ |
|
} |
|
Calling_ctrlC_hook = 0; |
KSexecuteString(" (Computation is interrupted.) "); |
KSexecuteString(" (Computation is interrupted.) "); |
signal(SIGUSR1,controlResetHandler); goto aaa; |
signal(SIGUSR1,controlResetHandler); goto aaa; |
} else { |
} else { |
Line 165 nullserver(int fdStreamIn,int fdStreamOut) { |
|
Line 170 nullserver(int fdStreamIn,int fdStreamOut) { |
|
*/ |
*/ |
Sm1_pushError2(SerialCurrent,-1,"Global jump by sm1 error"); |
Sm1_pushError2(SerialCurrent,-1,"Global jump by sm1 error"); |
|
|
KSexecuteString(" ctrlC-hook "); /* Execute User Defined functions. */ |
if (!Calling_ctrlC_hook) { |
|
Calling_ctrlC_hook = 1; |
|
KSexecuteString(" ctrlC-hook "); /* Execute User Defined functions. */ |
|
} |
|
Calling_ctrlC_hook = 0; |
signal(SIGUSR1,controlResetHandler); goto aaa ; |
signal(SIGUSR1,controlResetHandler); goto aaa ; |
} else { |
} else { |
if (JmpMessage) fprintf(stderr,"Set EnvOfStackMachine.\n"); |
if (JmpMessage) fprintf(stderr,"Set EnvOfStackMachine.\n"); |
Line 306 nullserverCommand(ox_stream ostreamIn,ox_stream ostrea |
|
Line 315 nullserverCommand(ox_stream ostreamIn,ox_stream ostrea |
|
return(-1); |
return(-1); |
} |
} |
break; |
break; |
|
case SM_executeFunctionWithOptionalArgument: |
|
OxCritical = 0; |
|
if (NoExecution) { |
|
iresult = 0; |
|
}else{ |
|
iresult = Sm1_executeStringByLocalParser(); |
|
} |
|
OxCritical = 1; signal(SIGUSR1,controlResetHandler); |
|
if (iresult < 0) { |
|
emsg = Sm1_popErrorMessage("executeFunctionWithOptionalArgument: "); |
|
Sm1_pushError2(SerialCurrent,-1,emsg); |
|
return(-1); |
|
} |
|
break; |
case SM_popCMO: |
case SM_popCMO: |
oxSendOXheader(ostreamOut,OX_DATA,SerialOX++); |
oxSendOXheader(ostreamOut,OX_DATA,SerialOX++); |
n=Sm1_popCMO(ostreamOut,SerialCurrent); |
n=Sm1_popCMO(ostreamOut,SerialCurrent); |
Line 353 void controlResetHandler(sig) |
|
Line 376 void controlResetHandler(sig) |
|
if (OxCritical) { |
if (OxCritical) { |
return; |
return; |
}else{ |
}else{ |
|
(void) traceShowStack(); traceClearStack(); |
#if defined(__CYGWIN__) |
#if defined(__CYGWIN__) |
siglongjmp(EnvOfChildServer,2); /* returns 2 for ctrl-C */ |
siglongjmp(EnvOfChildServer,2); /* returns 2 for ctrl-C */ |
#else |
#else |