Programming Perl

Programming PerlSearch this book
Previous: 3.2.137 semgetChapter 3
Functions
Next: 3.2.139 send
 

3.2.138 semop

semop KEY, 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.


Previous: 3.2.137 semgetProgramming PerlNext: 3.2.139 send
3.2.137 semgetBook Index3.2.139 send