mirror of
https://github.com/Interlisp/maiko.git
synced 2026-01-14 15:36:34 +00:00
... start by fixing the include files and the fallout in C source from removing includes not directly needed by headers that previously included them.
69 lines
1.6 KiB
C
69 lines
1.6 KiB
C
#ifndef TIMEOUT_H
|
|
#define TIMEOUT_H 1
|
|
/* $Id: timeout.h,v 1.2 1999/01/03 02:06:27 sybalsky Exp $ (C) Copyright Venue, All Rights Reserved */
|
|
|
|
/************************************************************************/
|
|
/* */
|
|
/* (C) Copyright 1989-98 Venue. All Rights Reserved. */
|
|
/* Manufactured in the United States of America. */
|
|
/* */
|
|
/************************************************************************/
|
|
#include "setjmp.h" /* for jmp_buf */
|
|
|
|
extern jmp_buf jmpbuf;
|
|
|
|
/*** TIMEOUT_TIME is changeable by UNIX env var LDEFILETIMEOUT.
|
|
#define TIMEOUT_TIME 10 **/
|
|
|
|
extern int TIMEOUT_TIME;
|
|
|
|
#define SETJMP(x) \
|
|
{ \
|
|
if(setjmp(jmpbuf) != 0) return(x); \
|
|
}
|
|
|
|
#define TIMEOUT(exp) \
|
|
{ \
|
|
alarm(TIMEOUT_TIME); \
|
|
INTRSAFE(exp); \
|
|
alarm(0); \
|
|
}
|
|
|
|
#define TIMEOUT0(exp) \
|
|
{ \
|
|
alarm(TIMEOUT_TIME); \
|
|
INTRSAFE0(exp); \
|
|
alarm(0); \
|
|
}
|
|
|
|
#define S_TOUT(exp) \
|
|
alarm(TIMEOUT_TIME),\
|
|
(exp), \
|
|
alarm(0)
|
|
|
|
#define ERRSETJMP(rval) \
|
|
{ \
|
|
if(setjmp(jmpbuf) != 0) \
|
|
{ \
|
|
*Lisp_errno = 100; \
|
|
return(rval); \
|
|
} \
|
|
}
|
|
|
|
|
|
/************************************************************************/
|
|
/* */
|
|
/* INTRSAFE */
|
|
/* */
|
|
/* Put a check for EINTR around a system call, and keep executing */
|
|
/* the call until we don't get that error any more. */
|
|
/* */
|
|
/************************************************************************/
|
|
|
|
#define INTRSAFE(exp) \
|
|
do {} while ((int)(exp) == -1 && errno == EINTR)
|
|
|
|
#define INTRSAFE0(exp) \
|
|
do {} while ((int)(exp) == 0 && errno == EINTR)
|
|
#endif /* TIMEOUT_H */
|