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

IPC::Semaphore(3p) Perl Programmers Reference Guide IPC::Semaphore(3p) #

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

NNAAMMEE #

 IPC::Semaphore - SysV Semaphore IPC object class

SSYYNNOOPPSSIISS #

     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;

DDEESSCCRRIIPPTTIIOONN #

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

MMEETTHHOODDSS #

 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 "_F_L_A_G_S & 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 current 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 operation and the
     last is a flags value. See sseemmoopp(2) 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 _n_a_m_e-_v_a_l_u_e 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 following fields. For a
     description of these fields see your system documentation.

         uid
         gid
         cuid
         cgid
         mode
         ctime
         otime
         nsems

SSEEEE AALLSSOO #

 IPC::SysV, Class::Struct, sseemmggeett(2), sseemmccttll(2), sseemmoopp(2)

AAUUTTHHOORRSS #

 Graham Barr <gbarr@pobox.com>, Marcus Holland-Moritz <mhx@cpan.org>

CCOOPPYYRRIIGGHHTT #

 Version 2.x, Copyright (C) 2007-2013, 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.36.3 2023-02-15 IPC::Semaphore(3p)