Contributed by: Doug Rickman, Global Hydrology and Climate Center, MSFC, NASA
This is aimed at Intermediate REXX users. The two programs show how to establish an event semaphore and then wait for it to be posted.
/* Semaphore1
Semaphore1.cmd and Semaphore2.cmd demostrate the use of event semaphores. Start
semaphore1 and then in a separate window start semaphore2.
*/
call rxfuncadd 'rexxlibregister', 'rexxlib', 'rexxlibregister' /* this will start rexxlib */
call rexxlibregister
CALL RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs' /* this will start rexxutil */
CALL SysLoadFuncs
call rxfuncadd 'rxuinit','rxu','rxuinit' /* this will start rxu */
call rxuinit
say 'I have started'
semrc = RxCreateEventSem(rexxvar,'Shared','\SEM32\NAMEIT')
say 'I have created a semaphore'
waitrc = RxWaitEventSem(rexxvar)
say 'I have detected the posting'
return
/* Semaphore2 */
call rxfuncadd 'rexxlibregister', 'rexxlib', 'rexxlibregister' /* this will start rexxlib */
call rexxlibregister
CALL RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs' /* this will start rexxutil */
CALL SysLoadFuncs
call rxfuncadd 'rxuinit','rxu','rxuinit' /* this will start rxu */
call rxuinit
semrc = RxOpenEventSem(rexxvar,'\SEM32\NAMEIT')
postrc = RxPostEventSem(rexxvar)
return