Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister
 
PerlMonks  

Re: errno in XS not propagating to $! - breaks Net::SSLeay (misblamed)

by tye (Sage)
on Feb 14, 2008 at 18:09 UTC ( [id://667990]=note: print w/replies, xml ) Need Help??


in reply to errno in XS not propagating to $! - breaks Net::SSLeay

I recall a change quite a while ago to save-and-restore the value of errno around XS calls, presumably to reduce the noise of XS calls changing the value of $!, presumably unintentionally.

But despite Net::SSLeay's pretty poor pass/fail ratio on CPAN of late, it does pass tests sometimes. That throws into question my recollection of this feature. Or perhaps it is the case that fairly rarely $! is 0 by luck and the test passes. Or perhaps this feature was only added on some platforms (and Net::SSLeay fails tests on other platforms for other reasons, of course).

But I certainly don't think your jumping to the conclusion of blaming compiler differences is warranted. I would not expect compiler differences to break linking of the errno global (if linking together global symbols didn't work, then you'd have a ton more problems than errno). And I wouldn't expect compiler difference to cause a change in how Perl deals with errno in some other way, though I'm less certain of that.

Update: Re^2: errno in XS not propagating to $! - breaks Net::SSLeay describes how there being two different errno globals can actually happen here.

My next step would be to search for code related to XS handling that sets errno.

- tye        

  • Comment on Re: errno in XS not propagating to $! - breaks Net::SSLeay (misblamed)

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://667990]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (8)
As of 2024-04-19 09:41 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found