RosettaCodeData/Task/Events/REXX/events.rexx
2023-07-01 13:44:08 -04:00

18 lines
1.5 KiB
Rexx

/*REXX program demonstrates a method of handling events (this is a time─driven pgm).*/
signal on halt /*allow user to HALT (Break) the pgm.*/
parse arg timeEvent /*allow the "event" to be specified. */
if timeEvent='' then timeEvent= 5 /*Not specified? Then use the default.*/
event?: do forever /*determine if an event has occurred. */
theEvent= right(time(), 1) /*maybe it's an event, ─or─ maybe not.*/
if pos(theEvent, timeEvent)>0 then signal happening
end /*forever*/
say 'Control should never get here!' /*This is a logic can─never─happen ! */
halt: say ' program halted.'; exit 0 /*stick a fork in it, we're all done. */
/*──────────────────────────────────────────────────────────────────────────────────────*/
happening: say 'an event occurred at' time()", the event is:" theEvent
do while theEvent==right(time(), 1) /*spin until a tic (a second) changes. */
nop /*replace NOP with the "process" code.*/
end /*while*/ /*NOP is a REXX statement, does nothing*/
signal event? /*see if another event has happened. */