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/12 20:38] – Minor updates to patch, pcntl support section lucas | ||
---|---|---|---|
Line 5: | Line 5: | ||
* Status: Under Discussion | * Status: Under Discussion | ||
* First Proposed by: [[http:// | * First Proposed by: [[http:// | ||
- | * Source code: [[http:// | + | * Source code: [[http:// |
===== 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 pcntl extension allows signal handlers to be defined in PHP userspace via // | ||
+ | |||
+ | Note: Although --enable-pcntl states " | ||
+ | |||
+ | Update: pcntl has been modified to register signals via // | ||
+ | |||
+ | === 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:// | ||
+ | - 2008-08-12 Lucas Nealan: Update patches to latest CVS, minor TWS fixes etc. ([[http:// |
rfc/zendsignals.txt · Last modified: 2017/09/22 13:28 by 127.0.0.1