Esempio n. 1
0
static void sigPIPEi(int sig) {
    if( getpid() == forker_pid ) {
        putsLog("##SIGPIPE-P in fork()");
    } else {
        putsLog("##SIGPIPE-C in fork()");
    }
}
Esempio n. 2
0
void LongJmp(FL_PAR,jmp_buf env,int val){
	if( inSignalHandler ){
		putsLog("##non-SIG longjmp in signal handling");
	}
	if( ismainthread() ){
	}else{
		putsLog("##non-SIG longjmp in non-main-thread");
		thread_exit(0);
	}
}
Esempio n. 3
0
void SigLongJmp(FL_PAR,sigjmp_buf env,int val){
	/*
	fprintf(stderr,"-- %X siglongjmp(%X,%d) <= %s:%d %d/%d\n",TID,
		env,val,FL_BAR,actthreads(),numthreads());
	*/
	if( inSignalHandler ){
		putsLog("##SIGlongjmp in signal handling");
	}
	if( ismainthread() ){
	}else{
		putsLog("##SIGlongjmp in non-main-thread");
		thread_exit(0);
	}
	return;
}
Esempio n. 4
0
static void sigTERMx(int sig) {
    putsLog("##SIGTERM-C in fork()");
    _exit(0);
}
Esempio n. 5
0
/*
int IsAlive(int sock){
*/
int IsAlive_FL(FL_PAR,int sock){
	int serrno,rdy1,rdy2;
	int r1,d1,r2,d2;

	if( IsConnected(sock,NULL) ){
		if( isWindowsCE() ){
			int exceptionReady(int sock);
			int rdy1,rdy2,rev2;
			if( rdy1 = exceptionReady(sock) ){
				rdy2 = inputReady(sock,&rev2);
				/*
				syslog_DEBUG("## IsNotAlive[%d] %d,%d/%d <= %s:%d\n",
					sock,rdy1,rdy2,rev2,FL_BAR);
				*/
				return 0;
			}
			return 1; /* no MSG_PEEK on WinCE */
		}
	    if( !lSISALIVE() ){
		SSigMask sMask;
		setSSigMask(sMask);
		/*
		rdy1 = PollIn(sock,1);
		9.9.8 for faster IsAlive()
		*/
		rdy1 = PollIn(sock,TIMEOUT_IMM);
		serrno = errno;
		resetSSigMask(sMask);

		if( rdy1 < 0 ){ /* 9.9.4 MTSS interrupted by a signal ? */
			putsLog("IsAlive PollIn failed");
			rdy2 = PollIn(sock,1);
			syslog_ERROR("IsAlive[%d] rdy=%d,%d err=%d <= %s:%d\n",
				sock,rdy1,rdy2,serrno,FL_BAR);
			rdy1 = rdy2;
		}
		/*
		if( PollIn(sock,1) == 0 || 0 < Peek1(sock) ) 
		*/
		if( rdy1 == 0 || 0 < rdy1 && Peek1(sock) )
			return 1;
		else	syslog_ERROR("## left connected but dead [%d] <= %s:%d\n",
				sock,FL_BAR);
		/*
		else	syslog_ERROR("## left connected but dead [%d]\n",sock);
		*/
	    }else{
		errno = 0;
		rdy1 = PollIn(sock,1);
		serrno = errno;
		if( rdy1 == 0 ){
			return 2;
		}
		msleep(1);
		r1 = inputReady(sock,&d1);
		rdy2 = PollIn(sock,1);
		r2 = inputReady(sock,&d2);
		if( rdy2 == 0 ){
		    porting_dbg("## IsAlive(%d) %d => %d (%d/%d %d/%d) e%d a%d <= %s:%d",
				sock,rdy1,rdy2,r1,d1,r2,d2,serrno,
				actthreads(),FL_BAR);
			return 3;
		}
		if( 0 < Peek1(sock) ){
			return 4;
		} 
		syslog_ERROR("## left connected but dead [%d]\n",sock);
	    }
	}
	return 0;
}