pfuRendezvous(3pf) OpenGL Performer 3.2.2 libpfutil Reference Pages
NAME
pfuInitRendezvous, pfuMasterRendezvous, pfuSlaveRendezvous-
Multiprocessing master and slave rendezvous routines
FUNCTION SPECIFICATION
#include <Performer/pfutil.h>
void pfuInitRendezvous(pfuRendezvous *rvous, int numSlaves);
void pfuMasterRendezvous(pfuRendezvous *rvous);
void pfuSlaveRendezvous(pfuRendezvous *rvous, int id);
#define PFURV_MAXSLAVES 2
#define PFURV_GARBAGE -1
#define PFURV_READY 10
#define PFURV_SYNC 11
#define PFURV_SYNCACK 12
#define PFURV_RESUME 13
typedef struct _pfuRendezvous
{
int master;
int numSlaves;
int slaves[PFURV_MAXSLAVES];
} pfuRendezvous;
DESCRIPTION
These rendezvous functions are useful for synchronizing master and slave
processes in a multiprocessing environment.
In the case of multiple processes, a rendezvous is a method for
synchronizing each independent process. A process chosen as the "master"
waits for the remaining processes, designated "slaves", to indicate
through the rendezvous that they are ready to synchronize. As each slave
indicates its readiness, it then waits on the master process. The master
process releases the slaves after all slaves have made the rendezvous.
The rendezvous token should be allocated in a shared arena; all processes
require access to it.
pfuInitRendezvous initializes the rendezvous token rvous for one master
process and numSlaves slave processes.
In order to synchronize multiple processes, the master should call
pfuMasterRendezvous and each of the slaves should call pfuSlaveRendezvous
with its slave ID in id. Slave IDs can range from 0 to (PFURV_MAXSLAVES
- 1).
Page 1
pfuRendezvous(3pf) OpenGL Performer 3.2.2 libpfutil Reference Pages
NOTES
The libpfutil source code, object code and documentation are provided as
unsupported software. Routines are subject to change in future releases.
SEE ALSO
pfGetSharedArena, pfMalloc, pfuBarrier
Page 2