1234567891011121314151617181920212223242526272829 |
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %
- % Wait.SL - Wait Primitive (TOPS-20 Version)
- %
- % Author: Alan Snyder
- % Hewlett-Packard/CRC
- % Date: 23 September 1982
- %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- (CompileTime (load fast-int))
- (BothTimes (load jsys))
- (de wait-timeout (f n-60ths)
- % Return when either of two conditions are met: (1) The function F (of no
- % arguments) returns non-NIL; (2) The specified elapsed time (in units of
- % 1/60th second) has elapsed. Don't waste CPU cycles! Return the last
- % value returned by F (which is always invoked at least once).
- (let (result)
- (while (and (not (setf result (apply f nil)))
- (> n-60ths 0))
- (Jsys0 250 0 0 0 (const jsDISMS))
- (setf n-60ths (- n-60ths 15))
- )
- result
- ))
|