.\" Automatically generated by Pod::Man 2.16 (Pod::Simple 3.05) .\" .\" Standard preamble: .\" ======================================================================== .de Sh \" Subsection heading .br .if t .Sp .ne 5 .PP \fB\\$1\fR .PP .. .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .ie \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . nr % 0 . rr F .\} .el \{\ . de IX .. .\} .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Win32::IPC 3" .TH Win32::IPC 3 "2008-04-23" "perl v5.10.0" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Win32::IPC \- Base class for Win32 synchronization objects .SH "VERSION" .IX Header "VERSION" This document describes version 1.07 of Win32::IPC, released April 16, 2008 as part of Win32\-IPC version 1.07. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& use Win32::Event 1.00 qw(wait_any); \& #Create objects. \& \& wait_any(@ListOfObjects, $timeout); .Ve .SH "DESCRIPTION" .IX Header "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. .PP The synchronization modules are Win32::ChangeNotify, Win32::Event, Win32::Mutex, & Win32::Semaphore. .PP In addition, you can use \f(CW\*(C`wait_any\*(C'\fR and \f(CW\*(C`wait_all\*(C'\fR 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)). .Sh "Methods" .IX Subsection "Methods" \&\fBWin32::IPC\fR supplies one method to all synchronization objects. .ie n .IP "$obj\->wait([$timeout])" 4 .el .IP "\f(CW$obj\fR\->wait([$timeout])" 4 .IX Item "$obj->wait([$timeout])" Waits for \f(CW$obj\fR to become signalled. \f(CW$timeout\fR is the maximum time to wait (in milliseconds). If \f(CW$timeout\fR is omitted or \f(CW\*(C`undef\*(C'\fR, waits forever. If \f(CW$timeout\fR is 0, returns immediately. .Sp Returns: .Sp .Vb 4 \& +1 The object is signalled \& \-1 The object is an abandoned mutex \& 0 Timed out \& undef An error occurred (check C<$^E> for details) .Ve .Sh "Functions" .IX Subsection "Functions" .IP "wait_any(@objects, [$timeout])" 4 .IX Item "wait_any(@objects, [$timeout])" Waits for at least one of the \f(CW@objects\fR to become signalled. \&\f(CW$timeout\fR is the maximum time to wait (in milliseconds). If \&\f(CW$timeout\fR is omitted or \f(CW\*(C`undef\*(C'\fR, waits forever. If \f(CW$timeout\fR is 0, returns immediately. .Sp The return value indicates which object ended the wait: .Sp .Vb 4 \& +N $object[N\-1] is signalled \& \-N $object[N\-1] is an abandoned mutex \& 0 Timed out \& undef An error occurred (check C<$^E> for details) .Ve .Sp If more than one object became signalled, the one with the lowest index is used. .IP "wait_all(@objects, [$timeout])" 4 .IX Item "wait_all(@objects, [$timeout])" This is the same as \f(CW\*(C`wait_any\*(C'\fR, but it waits for all the \f(CW@objects\fR to become signalled. The return value indicates the last object to become signalled, and is negative if at least one of the \f(CW@objects\fR is an abandoned mutex. .Sh "Deprecated Functions and Methods" .IX Subsection "Deprecated Functions and Methods" \&\fBWin32::IPC\fR still supports the ActiveWare syntax, but its use is deprecated. .IP "\s-1INFINITE\s0" 4 .IX Item "INFINITE" Constant value for an infinite timeout. Omit the \f(CW$timeout\fR argument (or pass \f(CW\*(C`undef\*(C'\fR) instead. .Sp \&\f(CW\*(C`INFINITE\*(C'\fR is only mildly deprecated. If you have a good use for it, feel free to continue to use it. That is, \f(CW\*(C`$object\->wait(INFINITE)\*(C'\fR is pointless, but \f(CW\*(C`$object\->wait($timeout)\*(C'\fR (where \f(CW$timeout\fR may or may not equal \f(CW\*(C`INFINITE\*(C'\fR) may make sense. .ie n .IP "WaitForMultipleObjects(\e@objects, $wait_all\fR, \f(CW$timeout)" 4 .el .IP "WaitForMultipleObjects(\e@objects, \f(CW$wait_all\fR, \f(CW$timeout\fR)" 4 .IX Item "WaitForMultipleObjects(@objects, $wait_all, $timeout)" Warning: \f(CW\*(C`WaitForMultipleObjects\*(C'\fR erases \f(CW@objects\fR! Use \f(CW\*(C`wait_all\*(C'\fR or \f(CW\*(C`wait_any\*(C'\fR instead. .ie n .IP "$obj\->Wait($timeout)" 4 .el .IP "\f(CW$obj\fR\->Wait($timeout)" 4 .IX Item "$obj->Wait($timeout)" Similar to \f(CW\*(C`not $obj\->wait($timeout)\*(C'\fR. .SH "INTERNALS" .IX Header "INTERNALS" The \f(CW\*(C`wait_any\*(C'\fR and \f(CW\*(C`wait_all\*(C'\fR functions support two kinds of objects. Objects derived from \f(CW\*(C`Win32::IPC\*(C'\fR are expected to consist of a reference to a scalar containing the Win32 \s-1HANDLE\s0 as an \s-1IV\s0. .PP Other objects (for which \f(CW\*(C`UNIVERSAL::isa($object, "Win32::IPC")\*(C'\fR is false), are expected to implement a \f(CW\*(C`get_Win32_IPC_HANDLE\*(C'\fR method. When called in scalar context with no arguments, this method should return a Win32 \s-1HANDLE\s0 (as an \s-1IV\s0) suitable for passing to the Win32 WaitForMultipleObjects \s-1API\s0 function. .SH "DIAGNOSTICS" .IX Header "DIAGNOSTICS" None. .SH "CONFIGURATION AND ENVIRONMENT" .IX Header "CONFIGURATION AND ENVIRONMENT" Win32::IPC requires no configuration files or environment variables. .PP It runs under 32\-bit or 64\-bit Microsoft Windows, either natively or under Cygwin. .SH "DEPENDENCIES" .IX Header "DEPENDENCIES" None. .SH "INCOMPATIBILITIES" .IX Header "INCOMPATIBILITIES" Prior to version 1.06, the Win32 \s-1IPC\s0 modules treated \f(CW\*(C`undef\*(C'\fR values differently. In version 1.06 and later, passing \f(CW\*(C`undef\*(C'\fR as the value of an optional parameter is the same as omitting that parameter. In previous versions, \f(CW\*(C`undef\*(C'\fR was interpreted as either the empty string or 0 (along with a warning about \*(L"Use of uninitialized value...\*(R"). .SH "BUGS AND LIMITATIONS" .IX Header "BUGS AND LIMITATIONS" No bugs have been reported. .SH "AUTHOR" .IX Header "AUTHOR" Christopher J. Madsen <\fIperl \s-1AT\s0 cjmweb.net\fR> .PP Please report any bugs or feature requests to \&\f(CW\*(C`\*(C'\fR, or through the web interface at .PP Loosely based on the original module by ActiveWare Internet Corp., .SH "LICENSE AND COPYRIGHT" .IX Header "LICENSE AND COPYRIGHT" Copyright 1998\-2008 Christopher J. Madsen .PP Created: 3 Feb 1998 from the ActiveWare version (c) 1995 Microsoft Corporation. All rights reserved. Developed by ActiveWare Internet Corp., http://www.ActiveState.com .PP .Vb 1 \& Other modifications (c) 1997 by Gurusamy Sarathy .Ve .PP This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See perlartistic. .SH "DISCLAIMER OF WARRANTY" .IX Header "DISCLAIMER OF WARRANTY" \&\s-1BECAUSE\s0 \s-1THIS\s0 \s-1SOFTWARE\s0 \s-1IS\s0 \s-1LICENSED\s0 \s-1FREE\s0 \s-1OF\s0 \s-1CHARGE\s0, \s-1THERE\s0 \s-1IS\s0 \s-1NO\s0 \s-1WARRANTY\s0 \&\s-1FOR\s0 \s-1THE\s0 \s-1SOFTWARE\s0, \s-1TO\s0 \s-1THE\s0 \s-1EXTENT\s0 \s-1PERMITTED\s0 \s-1BY\s0 \s-1APPLICABLE\s0 \s-1LAW\s0. \s-1EXCEPT\s0 \s-1WHEN\s0 \&\s-1OTHERWISE\s0 \s-1STATED\s0 \s-1IN\s0 \s-1WRITING\s0 \s-1THE\s0 \s-1COPYRIGHT\s0 \s-1HOLDERS\s0 \s-1AND/OR\s0 \s-1OTHER\s0 \s-1PARTIES\s0 \&\s-1PROVIDE\s0 \s-1THE\s0 \s-1SOFTWARE\s0 \*(L"\s-1AS\s0 \s-1IS\s0\*(R" \s-1WITHOUT\s0 \s-1WARRANTY\s0 \s-1OF\s0 \s-1ANY\s0 \s-1KIND\s0, \s-1EITHER\s0 \&\s-1EXPRESSED\s0 \s-1OR\s0 \s-1IMPLIED\s0, \s-1INCLUDING\s0, \s-1BUT\s0 \s-1NOT\s0 \s-1LIMITED\s0 \s-1TO\s0, \s-1THE\s0 \s-1IMPLIED\s0 \&\s-1WARRANTIES\s0 \s-1OF\s0 \s-1MERCHANTABILITY\s0 \s-1AND\s0 \s-1FITNESS\s0 \s-1FOR\s0 A \s-1PARTICULAR\s0 \s-1PURPOSE\s0. \s-1THE\s0 \&\s-1ENTIRE\s0 \s-1RISK\s0 \s-1AS\s0 \s-1TO\s0 \s-1THE\s0 \s-1QUALITY\s0 \s-1AND\s0 \s-1PERFORMANCE\s0 \s-1OF\s0 \s-1THE\s0 \s-1SOFTWARE\s0 \s-1IS\s0 \s-1WITH\s0 \&\s-1YOU\s0. \s-1SHOULD\s0 \s-1THE\s0 \s-1SOFTWARE\s0 \s-1PROVE\s0 \s-1DEFECTIVE\s0, \s-1YOU\s0 \s-1ASSUME\s0 \s-1THE\s0 \s-1COST\s0 \s-1OF\s0 \s-1ALL\s0 \&\s-1NECESSARY\s0 \s-1SERVICING\s0, \s-1REPAIR\s0, \s-1OR\s0 \s-1CORRECTION\s0. .PP \&\s-1IN\s0 \s-1NO\s0 \s-1EVENT\s0 \s-1UNLESS\s0 \s-1REQUIRED\s0 \s-1BY\s0 \s-1APPLICABLE\s0 \s-1LAW\s0 \s-1OR\s0 \s-1AGREED\s0 \s-1TO\s0 \s-1IN\s0 \s-1WRITING\s0 \&\s-1WILL\s0 \s-1ANY\s0 \s-1COPYRIGHT\s0 \s-1HOLDER\s0, \s-1OR\s0 \s-1ANY\s0 \s-1OTHER\s0 \s-1PARTY\s0 \s-1WHO\s0 \s-1MAY\s0 \s-1MODIFY\s0 \s-1AND/OR\s0 \&\s-1REDISTRIBUTE\s0 \s-1THE\s0 \s-1SOFTWARE\s0 \s-1AS\s0 \s-1PERMITTED\s0 \s-1BY\s0 \s-1THE\s0 \s-1ABOVE\s0 \s-1LICENSE\s0, \s-1BE\s0 \&\s-1LIABLE\s0 \s-1TO\s0 \s-1YOU\s0 \s-1FOR\s0 \s-1DAMAGES\s0, \s-1INCLUDING\s0 \s-1ANY\s0 \s-1GENERAL\s0, \s-1SPECIAL\s0, \s-1INCIDENTAL\s0, \&\s-1OR\s0 \s-1CONSEQUENTIAL\s0 \s-1DAMAGES\s0 \s-1ARISING\s0 \s-1OUT\s0 \s-1OF\s0 \s-1THE\s0 \s-1USE\s0 \s-1OR\s0 \s-1INABILITY\s0 \s-1TO\s0 \s-1USE\s0 \&\s-1THE\s0 \s-1SOFTWARE\s0 (\s-1INCLUDING\s0 \s-1BUT\s0 \s-1NOT\s0 \s-1LIMITED\s0 \s-1TO\s0 \s-1LOSS\s0 \s-1OF\s0 \s-1DATA\s0 \s-1OR\s0 \s-1DATA\s0 \s-1BEING\s0 \&\s-1RENDERED\s0 \s-1INACCURATE\s0 \s-1OR\s0 \s-1LOSSES\s0 \s-1SUSTAINED\s0 \s-1BY\s0 \s-1YOU\s0 \s-1OR\s0 \s-1THIRD\s0 \s-1PARTIES\s0 \s-1OR\s0 A \&\s-1FAILURE\s0 \s-1OF\s0 \s-1THE\s0 \s-1SOFTWARE\s0 \s-1TO\s0 \s-1OPERATE\s0 \s-1WITH\s0 \s-1ANY\s0 \s-1OTHER\s0 \s-1SOFTWARE\s0), \s-1EVEN\s0 \s-1IF\s0 \&\s-1SUCH\s0 \s-1HOLDER\s0 \s-1OR\s0 \s-1OTHER\s0 \s-1PARTY\s0 \s-1HAS\s0 \s-1BEEN\s0 \s-1ADVISED\s0 \s-1OF\s0 \s-1THE\s0 \s-1POSSIBILITY\s0 \s-1OF\s0 \&\s-1SUCH\s0 \s-1DAMAGES\s0.