diff options
Diffstat (limited to 'man/man3/rendezvous.3')
-rw-r--r-- | man/man3/rendezvous.3 | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/man/man3/rendezvous.3 b/man/man3/rendezvous.3 new file mode 100644 index 00000000..54cb6b6d --- /dev/null +++ b/man/man3/rendezvous.3 @@ -0,0 +1,57 @@ +.TH RENDEZVOUS 3 +.SH NAME +rendezvous \- user level process synchronization +.SH SYNOPSIS +.B #include <u.h> +.br +.B #include <libc.h> +.PP +.B +ulong rendezvous(ulong tag, ulong value) +.SH DESCRIPTION +The rendezvous system call allows two processes to synchronize and +exchange a value. +In conjunction with the shared memory system calls +(see +.IR segattach (2) +and +.IR fork (2)), +it enables parallel programs to control their scheduling. +.PP +Two processes wishing to synchronize call +.I rendezvous +with a common +.IR tag , +typically an address in +memory they share. +One process will arrive at the rendezvous first; +it suspends execution until a second arrives. +When a second process meets the rendezvous +the +.I value +arguments are exchanged between the processes and returned +as the result of the respective +.I rendezvous +system calls. +Both processes are awakened when +the rendezvous succeeds. +.PP +The set of tag values which two processes may use to rendezvous\(emtheir tag space\(emis +inherited when a process forks, unless +.B RFREND +is set in the argument to +.BR rfork ; +see +.IR fork (2). +.PP +If a rendezvous is interrupted the return value is +.BR ~0 , +so that value should not be used in normal communication. +.SH SOURCE +.B /sys/src/libc/9syscall +.SH SEE ALSO +.IR segattach (2), +.IR fork (2) +.SH DIAGNOSTICS +Sets +.IR errstr . |