On Thu, Jul 25, 2002 at 01:33:13PM -0700, [EMAIL PROTECTED] wrote:
> I am rewriting a monolithic script that is used for data collection on the
> afore mentioned OSes.  I'm developing using the ActiveState PDK on Windows
> 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.

POE works with blocking file handles; it just works better when they
don't block.  Once a handle is registered with POE, turn off its
blocking, and it should work fine.  I do this in PoCo::Client::HTTP
for SSL, since Net::SSLeay works better with blocking handles.
Multitasking is a little chunkier, but it still works.

FollowTail's reliance on select() is probably an error.  From what I
can tell, sysread() should never block on a filesystem, even if there
is no data available.  Mileage probably varies with some operating
systems, but that can't be helped.

Suggested remedy:

Remove select() use from FollowTail and Client::FTP disk I/O.  This
will also disable the non-blocking flags.

> Thanks for getting the preprocessor and Windows services issue straitened
> out.  I am running this as a service (hence the PDK), and diagnosed that
> preprocessing on the fly wasn't happening, and then found that all I had to
> do was upgrade!

This is Zoltan Kandi's fault.  He should be thanked early and often.

> I am starting the port to OpenVMS; any thoughts?

Although I have OpenVMS accounts, I have no idea how to do anything in
them.  Otherwise POE would already be tested under that environment.
Post any specific questions and problems you run into.

> I presume that POE is developed on Unix, so I'm thinking the port to Tru64
> should be the easiest.

I also have Tru64 accounts, and older versions of POE have worked fine
under this OS.  The latest versions have not, but I don't anticipate
any problems.  You may be lucky and not need to do anything here.

-- Rocco Caputo / [EMAIL PROTECTED] / poe.perl.org / poe.sf.net

Reply via email to