|
|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T t
Length: 1006 (0x3ee)
Types: TextFile
Names: »timeout.c«
└─⟦2d1937cfd⟧ Bits:30007241 EUUGD22: P.P 5.0
└─⟦dc59850a2⟧ »EurOpenD22/pp5.0/pp-5.tar.Z«
└─⟦e5a54fb17⟧
└─⟦this⟧ »pp-5.0/Lib/util/timeout.c«
/* timeout.c: provide a timeout function */
# ifndef lint
static char Rcsid[] = "@(#)$Header: /cs/research/pp/hubris/pp-beta/Lib/util/RCS/timeout.c,v 5.0 90/09/20 16:18:05 pp Exp Locker: pp $";
# endif
/*
* $Header: /cs/research/pp/hubris/pp-beta/Lib/util/RCS/timeout.c,v 5.0 90/09/20 16:18:05 pp Exp Locker: pp $
*
* $Log: timeout.c,v $
* Revision 5.0 90/09/20 16:18:05 pp
* rcsforce : 5.0 public release
*
*/
#include <signal.h>
#include "util.h"
/* __________________________________________________________________________
provide a timeout function for jobs that could potentially hang
Only one entry is given - timeout(value)
timeout(value) will be longjumped back to
____________________________________________________________________________*/
jmp_buf _timeobuf;
static SFP oldalrm;
SFD _tcatch()
{
longjmp(_timeobuf,1);
}
void _timeout(val)
unsigned val;
{
if(val)
oldalrm = signal (SIGALRM, _tcatch);
alarm(val);
if (!val)
signal (SIGALRM, oldalrm);
}