AnyEvent::Socket and Windows
Marc Lehmann
schmorp at schmorp.de
Thu Sep 27 14:59:44 CEST 2012
On Thu, Sep 27, 2012 at 02:23:17PM +0200, Henrik Pauli <henrik.pauli at gmail.com> wrote:
> I ran into a little issue with AnyEvent::Socket under Win32, which,
> while it turned out to be a result of us overriding $SIG{__DIE__}, I
> think it might still be worth a mention. Of course, the problem can
> be solved with locally undefining the signal handler, so it's not
> really an issue.
Sounds like a buggy __DIE__ handler - the correct solution would be to
teach your die handler to work as expected under eval.
> Socket::pack_sockaddr_un), but in the case of a $SIG{__DIE__}
> override it runs the callback (and in our case, exits the
That's clearly a bug in your code then.
> So I wonder if replacing (or augmenting) the eval {} with an unless
> AnyEvent::WIN32 would make any sense.
No, the problem doesn't happen because of win32, it happens because of a
buggy die handler that exits the app when it shouldn't do so. The only
place to fix it is in your die handler.
AnyEvent cetrainly isn't the only perl code that uses exceptions, and it
seems your die handler completely breaks this part of the language. While
you are free to to do so, you also get to keep the pieces then :)
--
The choice of a Deliantra, the free code+content MORPG
-----==- _GNU_ http://www.deliantra.net
----==-- _ generation
---==---(_)__ __ ____ __ Marc Lehmann
--==---/ / _ \/ // /\ \/ / schmorp at schmorp.de
-=====/_/_//_/\_,_/ /_/\_\
More information about the anyevent
mailing list