! Clock Module
option "-NoCheck"
include "moose:mouse.inc"
Recordformat clockreqfm (record (messagefm) msg,
Integer ms)
ownrecord (mailboxfm)Name out == nil
Externalroutine Clock Wait (Integer milliseconds)
record (messagefm)Name rep
record (semaphorefm) sem
record (mailboxfm) in
record (clockreqfm) req
Integer i
if out == nil start
i = Find Entry ("CLOCK_REQ",poa_logdict)
Signal 3,0,0,"Failed to find CLOCK_REQ" if i = 0
out == record(integer(i))
Finish
setup semaphore (sem)
setup mailbox (in,sem)
setup message (req,sizeof(req))
req_ms = realtime + milliseconds
send message (req,out,in)
rep == receive message(in)
End