---
name: "IPC::Semaphore"
section: "3pm"
platform: "linux"
package: "perl-5.005-doc"
version: "5.005.03-7.1"
release: "Debian 2.2 (Potato)"
platforms: ["linux"]
url: "https://new.carta.tech/IPC::Semaphore/3pm"
---

# IPC::Semaphore(3pm)

SysV Semaphore IPC object class

## 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

## 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.\

- getall

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

- getncnt ( SEM )

  Returns the number of processed waiting for the semaphore `SEM` to become greater than it's 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 processed 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 the *semop* manpage 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 (oly 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 you system documentation.

  ```
      uid
      gid
      cuid
      cgid
      mode
      ctime
      otime
      nsems
  ```

## SEE ALSO

the *IPC::SysV* manpage the *Class::Struct* manpage the *semget* manpage the *semctl* manpage the *semop* manpage

## 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.
