Win32::IPC - Base class for Win32 synchronization objects
use Win32::Event 1.00 qw(wait_any); #Create objects. wait_any(@ListOfObjects,$timeout);
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)).
wait_any
wait_all
Win32::IPC supplies one method to all synchronization objects.
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.
$obj
$timeout
Returns:
+1 The object is signalled -1 The object is an abandoned mutex 0 Timed out undef An error occurred
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.
@objects
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.
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.
Win32::IPC still supports the ActiveWare syntax, but its use is deprecated.
Constant value for an infinite timeout. Omit the $timeout argument instead.
Warning: WaitForMultipleObjects erases @objects! Use wait_all or wait_any instead.
WaitForMultipleObjects
Similar to not $obj->wait($timeout).
not $obj->wait($timeout)
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.
Win32::IPC
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.
UNIVERSAL::isa($object, "Win32::IPC")
get_Win32_IPC_HANDLE
Christopher J. Madsen <cjm@pobox.com>
Loosely based on the original module by ActiveWare Internet Corp., http://www.ActiveWare.com
To install Win32, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Win32
CPAN shell
perl -MCPAN -e shell install Win32
For more information on module installation, please visit the detailed CPAN module installation guide.