Home | OS/2 Software | Rexx | Event Semaphore Example (Intermediate Level)

Event Semaphore Example (Intermediate Level)

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