IPC::Semaphore(3perl)

IPC::Semaphore3perl

Sysv semaphore ipc object class

Usage

    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;

Overview

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 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 semop(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 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 following fields. For a description of these fields see your system documentation.

    uid
    gid
    cuid
    cgid
    mode
    ctime
    otime
    nsems

Releases

13 releases since Debian 3.0 (Woody); the text changed 12 times.

  1. 3.0
  2. 3.1
  3. 4.0
  4. 5.0
  5. 6.0
  6. 7
  7. 8
  8. 9
  9. 10
  10. 11
  11. 12
  12. 13
  13. Arch

Authors

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

From perl 5.44.0-1 in Arch Linux 2026-11-01. Parsed by carta from the page's man source.