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.