This manual page is for Mac OS X version 10.6

If you are running a different version of Mac OS X, view the documentation locally:

  • In Terminal, using the man(1) command

Reading manual pages

Manual pages are intended as a quick reference for people who already understand a technology.

  • For more information about the manual page format, see the manual page for manpages(5).

  • For more information about this technology, look for other documentation in the Apple Reference Library.

  • For general information about writing shell scripts, read Shell Scripting Primer.



IPC::Semaphore(3pm)                   Perl Programmers Reference Guide                   IPC::Semaphore(3pm)



NAME
       IPC::Semaphore - SysV Semaphore IPC object class

SYNOPSIS
           use IPC::SysV qw(IPC_PRIVATE S_IRUSR S_IWUSR IPC_CREAT);
           use IPC::Semaphore;

           $sem = IPC::Semaphore->new(IPC_PRIVATE, 10, S_IRUSR | S_IWUSR | IPC_CREAT);

           $sem->setall( (0) x 10);

           @sem = $sem->getall;

           $ncnt = $sem->getncnt;

           $zcnt = $sem->getzcnt;

           $ds = $sem->stat;

           $sem->remove;

DESCRIPTION
       A class providing an object based interface to SysV IPC semaphores.

METHODS
       new ( KEY , NSEMS , FLAGS )
           Create a new semaphore set associated with "KEY". "NSEMS" is the number of semaphores in the set.
           A new set is created if

           *   "KEY" is equal to "IPC_PRIVATE"

           *   "KEY" does not already have a semaphore identifier associated with it, and "FLAGS &
               IPC_CREAT" is true.

           On creation of a new semaphore set "FLAGS" is used to set the permissions.  Be careful not to set
           any flags that the Sys V IPC implementation does not allow: in some systems setting execute bits
           makes the operations fail.

       getall
           Returns the values of the semaphore set as an array.

       getncnt ( SEM )
           Returns the number of processes waiting for the semaphore "SEM" to become greater than its cur-rent current
           rent value

       getpid ( SEM )
           Returns the process id of the last process that performed an operation on the semaphore "SEM".

       getval ( SEM )
           Returns the current value of the semaphore "SEM".

       getzcnt ( SEM )
           Returns the number of processes waiting for the semaphore "SEM" to become zero.

       id  Returns the system identifier for the semaphore set.

       op ( OPLIST )
           "OPLIST" is a list of operations to pass to "semop". "OPLIST" is a concatenation of smaller
           lists, each which has three values. The first is the semaphore number, the second is the opera-tion operation
           tion and the last is a flags value. See semop for more details. For example

               $sem->op(
                   0, -1, IPC_NOWAIT,
                   1,  1, IPC_NOWAIT
               );

       remove
           Remove and destroy the semaphore set from the system.

       set ( STAT )
       set ( NAME => VALUE [, NAME => VALUE ...] )
           "set" will set the following values of the "stat" structure associated with the semaphore set.

               uid
               gid
               mode (only the permission bits)

           "set" accepts either a stat object, as returned by the "stat" method, or a list of name-value
           pairs.

       setall ( VALUES )
           Sets all values in the semaphore set to those given on the "VALUES" list.  "VALUES" must contain
           the correct number of values.

       setval ( N , VALUE )
           Set the "N"th value in the semaphore set to "VALUE"

       stat
           Returns an object of type "IPC::Semaphore::stat" which is a sub-class of "Class::Struct". It pro-vides provides
           vides the following fields. For a description of these fields see your system documentation.

               uid
               gid
               cuid
               cgid
               mode
               ctime
               otime
               nsems

SEE ALSO
       IPC::SysV, Class::Struct, semget, semctl, semop

AUTHORS
       Graham Barr <[email protected]>, Marcus Holland-Moritz <[email protected]>

COPYRIGHT
       Version 2.x, Copyright (C) 2007, Marcus Holland-Moritz.

       Version 1.x, Copyright (c) 1997, Graham Barr.

       This program is free software; you can redistribute it and/or modify it under the same terms as Perl
       itself.



perl v5.8.9                                      2001-09-21                              IPC::Semaphore(3pm)

Reporting Problems

The way to report a problem with this manual page depends on the type of problem:

Content errors
Report errors in the content of this documentation to the Perl project. (See perlbug(1) for submission instructions.)
Bug reports
Report bugs in the functionality of the described tool or API to Apple through Bug Reporter and to the Perl project using perlbug(1).
Formatting problems
Report formatting mistakes in the online version of these pages with the feedback links below.