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.
[ Library Home | Perl in a Nutshell | Learning Perl | Learning Perl on Win32 | Programming Perl | Advanced Perl Programming | Perl Cookbook ]