Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ (2) — Plan9 4th Edition

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

segattach(2)

fork(2)

RENDEZVOUS(2)

NAME

rendezvous − user level process synchronization

SYNOPSIS

­#include <u.h>
­#include <libc.h>

ulong rendezvous(ulong tag, ulong value)

DESCRIPTION

The rendezvous system call allows two processes to synchronize and exchange a value.  In conjunction with the shared memory system calls (see segattach(2) and fork(2)), it enables parallel programs to control their scheduling.

Two processes wishing to synchronize call ­rendezvous with a common 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 ­value arguments are exchanged between the processes and returned as the result of the respective ­rendezvous system calls.  Both processes are awakened when the rendezvous succeeds. 

The set of tag values which two processes may use to rendezvous—their tag space—is inherited when a process forks, unless ­RFREND is set in the argument to rfork; see fork(2).

If a rendezvous is interrupted the return value is ~0, so that value should not be used in normal communication. 

SOURCE

­/sys/src/libc/9syscall

SEE ALSO

segattach(2), fork(2)

DIAGNOSTICS

Sets errstr.

Plan 9  —  February 14, 2000

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026