Gurusamy Sarathy > libwin32-0.191 > Win32::Semaphore

Download:
libwin32-0.191.zip

Dependencies

Annotate this POD

Related Modules

Win32::OLE
Win32::Mutex
Data::Dumper
Win32::IPC
Win32::Process
IPC::Shareable
IO::Handle
Win32::Event
IPC::SysV
Win32::API
more...
By perlmonks.org

CPAN RT

New  9
Open  0
View/Report Bugs
Module Version: 1.02   Source  

NAME ^

Win32::Semaphore - Use Win32 semaphore objects from Perl

SYNOPSIS require Win32::Semaphore; ^

        $sem = Win32::Semaphore->new($initial,$maximum,$name);
        $sem->wait;

DESCRIPTION ^

This module allows access to Win32 semaphore objects. The wait method and wait_all & wait_any functions are inherited from the "Win32::IPC" module.

Methods

$semaphore = Win32::Semaphore->new($initial, $maximum, [$name])

Constructor for a new semaphore object. $initial is the initial count, and $maximum is the maximum count for the semaphore. If $name is omitted, creates an unnamed semaphore object.

If $name signifies an existing semaphore object, then $initial and $maximum are ignored and the object is opened.

$semaphore = Win32::Semaphore->open($name)

Constructor for opening an existing semaphore object.

$semaphore->release([$increment, [$previous]])

Increment the count of $semaphore by $increment (default 1). If $increment plus the semaphore's current count is more than its maximum count, the count is not changed. Returns true if the increment is successful.

The semaphore's count (before incrementing) is stored in the second argument (if any).

It is not necessary to wait on a semaphore before calling release, but you'd better know what you're doing.

$semaphore->wait([$timeout])

Wait for $semaphore's count to be nonzero, then decrement it by 1. See "Win32::IPC".

Deprecated Functions and Methods

Win32::Semaphore still supports the ActiveWare syntax, but its use is deprecated.

Win32::Semaphore::Create($SemObject,$Initial,$Max,$Name)

Use $SemObject = Win32::Semaphore->new($Initial,$Max,$Name) instead.

Win32::Semaphore::Open($SemObject, $Name)

Use $SemObject = Win32::Semaphore->open($Name) instead.

$SemObj->Release($Count,$LastVal)

Use $SemObj->release($Count,$LastVal) instead.

AUTHOR ^

Christopher J. Madsen <chris_madsen@geocities.com>

Loosely based on the original module by ActiveWare Internet Corp., http://www.ActiveWare.com

syntax highlighting: