semopKEY,OPSTRING
This function calls the System V IPC system call semop(2) to perform
semaphore operations such as signaling and waiting.
OPSTRING must be a packed array of semop
structures. You can make each semop structure by saying
pack("s*", $semnum, $semop, $semflag). The number of
semaphore operations is implied by the length of OPSTRING. The
function returns true if successful, or false if there is an error.
On error, it puts the error code into $!. Before calling, you
should say:
require "ipc.ph"; require "sem.ph";
The following code waits on semaphore $semnum of semaphore id
$semid:
$semop = pack "s*", $semnum, -1, 0; die "Semaphore trouble: $!\n" unless semop $semid, $semop;
To signal the semaphore, simply replace -1 with 1.
This function is available only on machines supporting System V IPC.