Title: IO::Select ... ($ERRNO == EINTR)

Not sure if this is the best place to ask, but im at a loss for answers.

-----
# diff /usr/local/lib/perl5/5.6.1/sun4-solaris/IO/Select.pm /usr/local/lib/perl5/5.8.0/sun4-solaris/IO/Select.pm

14c14
< $VERSION = "1.14";
---
> $VERSION = "1.15";
134c134
<  warnings::warn("Call to depreciated method 'has_error', use 'has_exception'")
---
>  warnings::warn("Call to deprecated method 'has_error', use 'has_exception'")
284c284
< reference where the first element is a C<IO::Handle> or an integer.
---
> reference where the first element is an C<IO::Handle> or an integer.
-----

// Code
...
   # Block and wait for either an incoming Data Packet or timeout. See Note
   # 1.
#  NOTES:     1. Checking for VTM Clients is polled rather than event driven
#                and thus only done at the bottom of the loop. This can add
#                at most a 7 second delay to an attaching VTM Client - so what.
#                Polling is done by setting the socket temporarily to
#                non-blocking.

   @ReadyHandles = $Selector->can_read($SelectTmOut);

...

if (scalar(@ReadyHandles) > 0)
   {
...
   else
   {
      if (! $ERRNO)
      {
...
      }
      else
      {
         # Error on select() call
         unless ($ERRNO == EINTR)
         {
            # Ignore EINTR because this occurs regularly and is not a problem.
            UsrAbort("IO::Select() Failed", $ERRNO+0, VTM, \&ExitSvr);
         }
      }
   }
// end code

This snippet set works great with 5.6.1, initial testing of 5.8.0 shows ($ERRNO == EINTR).  I have checked the Release Notes and perldelta but can't find the cause.

Any and all help is appreciated as to how this has introduced itself..  If there is a better place for this discussion, please advise.

Thanks in advance,

Jason Allison

Reply via email to