MirBSD manpage: IPC::Semaphore(3p)


IPC::Semaphore(3pPerl Programmers Reference GuiIPC::Semaphore(3p)

NAME

     IPC::Semaphore - SysV Semaphore IPC object class

SYNOPSIS

         use IPC::SysV qw(IPC_PRIVATE S_IRWXU IPC_CREAT);
         use IPC::Semaphore;

         $sem = new IPC::Semaphore(IPC_PRIVATE, 10, S_IRWXU | 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  identif-
             ier associated with it, and "FLAGS & IPC_CREAT" is
             true.

         On creation of a new semaphore set "FLAGS" is used to
         set the permissions.

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

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

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

     getval ( SEM )

perl v5.8.8                2005-02-05                           1

IPC::Semaphore(3pPerl Programmers Reference GuiIPC::Semaphore(3p)

         Returns the current value of the semaphore "SEM".

     getzcnt ( SEM )
         Returns the number of processes waiting for the sema-
         phore "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 operation 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" struc-
         ture 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 provides the fol-
         lowing fields. For a description of these fields see
         your system documentation.

perl v5.8.8                2005-02-05                           2

IPC::Semaphore(3pPerl Programmers Reference GuiIPC::Semaphore(3p)

             uid
             gid
             cuid
             cgid
             mode
             ctime
             otime
             nsems

SEE ALSO

     IPC::SysV Class::Struct semget semctl semop

AUTHOR

     Graham Barr <gbarr@pobox.com>

COPYRIGHT

     Copyright (c) 1997 Graham Barr. All rights reserved. This
     program is free software; you can redistribute it and/or
     modify it under the same terms as Perl itself.

perl v5.8.8                2005-02-05                           3

Generated on 2022-12-24 01:00:14 by $MirOS: src/scripts/roff2htm,v 1.113 2022/12/21 23:14:31 tg Exp $ — This product includes material provided by mirabilos.

These manual pages and other documentation are copyrighted by their respective writers; their sources are available at the project’s CVSweb, AnonCVS and other mirrors. The rest is Copyright © 2002–2022 MirBSD.

This manual page’s HTML representation is supposed to be valid XHTML/1.1; if not, please send a bug report — diffs preferred.

Kontakt / Impressum & Datenschutzerklärung