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.