IPC(3) User Contributed Perl Documentation IPC(3)NAME
Win32::IPC - Base class for Win32 synchronization objects
SYNOPSIS
use Win32::Event 1.00 qw(wait_any);
#Create objects.
wait_any(@ListOfObjects,$timeout);
DESCRIPTION
This module is loaded by the other Win32 synchronization modules. You
shouldn't need to load it yourself. It supplies the wait functions to
those modules.
The synchronization modules are "Win32::ChangeNotify", "Win32::Event",
"Win32::Mutex", & "Win32::Semaphore".
In addition, you can use "wait_any" and "wait_all" with
"Win32::Console" and "Win32::Process" objects. (However, those modules
do not export the wait functions; you must load one of the
synchronization modules (or just Win32::IPC)).
Methods
Win32::IPC supplies one method to all synchronization objects.
$obj->wait([$timeout])
Waits for $obj to become signalled. $timeout is the maximum time
to wait (in milliseconds). If $timeout is omitted, waits forever.
If $timeout is 0, returns immediately.
Returns:
+1 The object is signalled
-1 The object is an abandoned mutex
0 Timed out
undef An error occurred
Functions
wait_any(@objects, [$timeout])
Waits for at least one of the @objects to become signalled.
$timeout is the maximum time to wait (in milliseconds). If
$timeout is omitted, waits forever. If $timeout is 0, returns
immediately.
The return value indicates which object ended the wait:
+N $object[N-1] is signalled
-N $object[N-1] is an abandoned mutex
0 Timed out
undef An error occurred
If more than one object became signalled, the one with the lowest
index is used.
wait_all(@objects, [$timeout])
This is the same as "wait_any", but it waits for all the @objects
to become signalled. The return value indicates the last object to
become signalled, and is negative if at least one of the @objects
is an abandoned mutex.
Deprecated Functions and Methods
Win32::IPC still supports the ActiveWare syntax, but its use is
deprecated.
INFINITE
Constant value for an infinite timeout. Omit the $timeout argument
instead.
WaitForMultipleObjects(\@objects, $wait_all, $timeout)
Warning: "WaitForMultipleObjects" erases @objects! Use "wait_all"
or "wait_any" instead.
$obj->Wait($timeout)
Similar to "not $obj->wait($timeout)".
INTERNALS
The "wait_any" and "wait_all" functions support two kinds of objects.
Objects derived from "Win32::IPC" are expected to consist of a
reference to a scalar containing the Win32 HANDLE as an IV.
Other objects (for which "UNIVERSAL::isa($object, "Win32::IPC")" is
false), are expected to implement a "get_Win32_IPC_HANDLE" method.
When called in scalar context with no arguments, this method should
return a Win32 HANDLE (as an IV) suitable for passing to the Win32
WaitForMultipleObjects API function.
AUTHOR
Christopher J. Madsen <cjm@pobox.com>
Loosely based on the original module by ActiveWare Internet Corp.,
http://www.ActiveWare.com
perl v5.14.2 2005-09-17 IPC(3)