Process synchronization

Sometimes, the multiple display processes must be coordinated, such as when they access shared data. The master display and display barriers can be used for this.

At other times, access to shared memory must be synchronized between the computation and display processes. CAVELOCKs provide two-level access control - read and write.

Functions

boolean CAVEMasterDisplay(void)
Returns TRUE in exactly one display process.

CAVEDisplayBarrier(void)
Blocks the calling process until all the display processes have reached the barrier. This should be called only in the display processes.

CAVELOCK CAVENewLock(void)
Returns a new CAVE lock.

CAVEFreeLock(CAVELOCK lock)
Deletes a lock created by CAVENewLock().

CAVESetReadLock(CAVELOCK lock)
CAVEUnsetReadLock(CAVELOCK lock)
Sets/releases a lock for read access. Any number of processes may set a lock for reading simultaneously. CAVESetReadLock() blocks until the lock is set.

CAVESetWriteLock(CAVELOCK lock)
CAVEUnsetWriteLock(CAVELOCK lock)
Sets/releases a lock for write access. Only one process may set a lock for writing at a time, and no processes may set the lock for reading while it is write-locked. CAVESetWriteLock() blocks until the lock is set.


Previous page    Next page

Last modified 15 June 1996.

Dave Pape, pape@evl.uic.edu