On Thu, Jul 25, 2002 at 01:33:13PM -0700, [EMAIL PROTECTED] wrote:
....
> 2000. It appears that there is a problem with setting the select call to
> be non-blocking on non-Posix OSes. I would like to use the
> POE::Component::Client::ftp and the POE::Wheel::FollowTail modules; both
of
> which depend on non-blocking I/O. Is there any hope? I notice that the
> IO::Select module uses a C extension to work around the issue. Can POE
use
> that? I would be happy to debug and test; I just need a direction.
and Rocco Caputo <[EMAIL PROTECTED]> on Thu, 25 Jul 2002 17:14:39 -0400
kindly wrote:
....
Remove select() use from FollowTail and Client::FTP disk I/O. This
will also disable the non-blocking flags.
Well I have delved more deeply. I'm concentrating on getting Client:FTP to
work; I like it much better than direct Net::FTP calls. I have found that
it uses POE::Wheel::SocketFactory, and that SocketFactory says:
# Don't block on socket operations, because the socket will be
# driven by a select loop.
# Do it the Win32 way. XXX This is incomplete.
It does indeed seems incomplete because I get:
ERROR: connect returned '10035/Unknown error' while trying to connect to
'172.20.245.73' at C:\RSA\agent\bin\sys-agent.pl line 412.
But only after I comment out:
# XXX EINPROGRESS is not included in ActiveState's POSIX.pm, and
# I don't know what AS's Perl uses instead. What to do here?
# if ($! and ($! != EINPROGRESS) and ($! != EWOULDBLOCK)) {
$poe_kernel->yield( $event_failure,
'connect', $!+0, $!, $self->[MY_UNIQUE_ID]
We know that:
eval '*EWOULDBLOCK = sub { 10035 };';
I am unclear why EWOULDBLOCK should not be logged since it does prevent the
connect from completing.
I am bedeviling myself by using Windows 2000 and "Binary build 631 provided
by ActiveState Tool Corp."
--
Paul Simons
Bellevue, WA
ALSTOM's T&D Energy Automation & Information Business
CONFIDENTIALITY: This e-mail and any attachments are confidential and may
be privileged.
If you are not a named recipient, please notify the sender immediately and
do not disclose the
contents to another person, use it for any purpose or store or copy the
information in any medium.