Tim, 

I've run into an odd problem using the DBI::Proxy.  In Programming Perl - 
3rd Edition, the claim is made that Perl will always try to restart 
interrupted "slow" system calls if POSIX sigaction() is supported.

Our experiences are suggesting that this is not correct.  We have an 
application which connects over the Proxy and forks children (which also 
establish their own connections - this is another can-of-worms for future 
discussion).  Unfortunately, the PlClient dies (with EINTR) if the DBI 
is in read() or write() at the time a child terminates.  I can see 
clearly that the code (Comm.pm) is not trying to handle this case, 
believing (as I did) the claim of Perl doing the "right thing" and 
restarting the call.

Before I tear into it, I want to make sure I have come to the correct 
conclusion.   Certainly, perl-5.8.0 is not using SA_RESTART anymore, but 
there is other "magic" going on in support of "safe interrupts" which I do 
not fully understand.

What is your take on this? 

Regards,

Steve

-- 
----------------------------------------------------------------
Steven N. Hirsch       tie-line: 446-6557     ext: 802-769-6557

Staff Engineer                     Methodology Integration Team
ASIC Product Development           IBM Microelectronics
----------------------------------------------------------------

Reply via email to