1 /***********************************************************************
3 * This software is part of the ast package *
4 * Copyright (c) 1985-2010 AT&T Intellectual Property *
5 * and is licensed under the *
6 * Common Public License, Version 1.0 *
7 * by AT&T Intellectual Property *
9 * A copy of the License is available at *
10 * http://www.opensource.org/licenses/cpl1.0.txt *
11 * (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) *
13 * Information and Software Systems Research *
17 * Glenn Fowler <gsf@research.att.com> *
18 * David Korn <dgk@research.att.com> *
19 * Phong Vo <kpv@research.att.com> *
21 ***********************************************************************/
24 /* Make a stream op return immediately on interrupts.
25 ** This is useful on slow streams (hence the name).
27 ** Written by Glenn Fowler (03/18/1998).
31 static int slowexcept(Sfio_t
* f
, int type
, Void_t
* v
, Sfdisc_t
* disc
)
33 static int slowexcept(f
, type
, v
, disc
)
61 int sfdcslow(Sfio_t
* f
)
69 if(!(disc
= (Sfdisc_t
*)malloc(sizeof(Sfdisc_t
))) )
72 disc
->readf
= NIL(Sfread_f
);
73 disc
->writef
= NIL(Sfwrite_f
);
74 disc
->seekf
= NIL(Sfseek_f
);
75 disc
->exceptf
= slowexcept
;
77 if(sfdisc(f
,disc
) != disc
)