Stanislav Malyshev wrote:
Hi!

We are using setjmp(__bailout) in zend_try, but setjmp behaves differently on BSD and Linux. POSIX doesn't specify whether the signal mask should be saved or not for this call, so different operating systems do different things here. I think it would be more consistent if we used sigsetjmp(__bailout,0) to always specify that we don't need to store the signal mask. This avoids an expensive sigprocmask syscall.

Sounds good. Can we still use longjmp or have to use siglongjmp?

It's the same thing for longjmp. POSIX doesn't specify what should be done with the signal mask after a longjmp either, so to be consistent we should use siglongjmp() as well and explicitly define what we want to do with the signal mask.

I'll work up a patch.

-Rasmus

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to