rfc:zendsignals
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
rfc:zendsignals [2008/07/08 23:44] – Updated patch for php_request_shutdown order issue lucas | rfc:zendsignals [2008/08/05 10:25] – change patch date lucas | ||
---|---|---|---|
Line 5: | Line 5: | ||
* Status: Under Discussion | * Status: Under Discussion | ||
* First Proposed by: [[http:// | * First Proposed by: [[http:// | ||
- | * Source code: [[http://sizzo.org/ | + | * Source code: [[http://arnaud.lb.s3.amazonaws.com/ |
===== Introduction ===== | ===== Introduction ===== | ||
Line 85: | Line 85: | ||
===== Considerations ===== | ===== Considerations ===== | ||
- | - Zend Signal Handling support has not been implemented for ZTS enabled php builds. | + | - Limited |
- | - The current implementation is not enabled by default, to enable pass --enable-zend-signals to PHP configure. | ||
- | |||
- | - The proposal has only been implemented for PHP_5_3 and will need to be ported to PHP 6. | ||
- | |||
- For simplicity the // | - For simplicity the // | ||
+ | |||
+ | - A signal queue of ZEND_SIGNAL_QUEUE_SIZE is created to handle recieved signals within critical sections. It is initialized to support 32 signals. If more are received after this they are discarded. | ||
+ | |||
+ | ===== Discoveries ===== | ||
+ | === pcntl extension signals === | ||
+ | The experimental pcntl extension allows signal handlers to be defined in PHP userspace via // | ||
+ | |||
+ | Future versions of Zend Signal should improve // | ||
+ | |||
+ | Note: Although --enable-pcntl states " | ||
+ | |||
+ | === PHP SIGCHLD signal handler === | ||
+ | To deal with zombied or defunct children SIGCHILD handling was added to PHP via --enable-sigchild. This is apparently very common during disconnect when using oracle libraries to connect via the BEQ interface. When enabled, a handler for SIGCHILD is installed during php_startup. This handler calls // | ||
+ | |||
+ | Since Zend Signals does not install a handler for SIGCHILD there is no explicit conflict. Also the simplicity of the handler should ensure that it does not adversely affect any critical zend sections. In future versions we may want to bring this functionality into Zend and enable by default on all platforms that support SIGCHLD ass well as implement via // | ||
+ | |||
+ | Note: When calling //wait()// or // | ||
+ | |||
===== Changelog ===== | ===== Changelog ===== | ||
- 2008-07-05 Lucas Nealan: Initial creation | - 2008-07-05 Lucas Nealan: Initial creation | ||
- | - 2008-07-08 Lucas Nealan: Updated patch for php_request_shutdown order issue ([[http:// | + | - 2008-07-08 Lucas Nealan: Updated patch for php_request_shutdown order issue ([[http:// |
+ | - 2008-07-29 Lucas Nealan: Update patch to fix reentrance in handler, enable by default, stolen signal reporting ([[http:// | ||
+ | - 2008-08-01 Lucas Nealan: Update patch to fix tests, alloc/free on php startup/ | ||
+ | - 2008-08-03 Lucas Nealan: Incorporated ZTS support by Arnaud Le Blanc, moved ini def to zend.c, added HEAD patch ([[http:// | ||
+ | - 2008-08-05 Arnaud Le Blanc: Added zend_sigaction() and ported PCNTL to use it. ([[http:// |
rfc/zendsignals.txt · Last modified: 2017/09/22 13:28 by 127.0.0.1