Re: request for comments on threadsafe / multi-thread enabled Embed2 SAPI
| From: | Bas van Beek | Date: | Fri, 27 Mar 2009 07:34:15 +0000 |
| Subject: | Re: request for comments on threadsafe / multi-thread enabled Embed2 SAPI | ||
| References: | 1 2 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-43510@lists.php.net to get a copy of this message | ||
Hello Moriyoshi,
Op 27 mrt 2009, om 03:38 heeft Moriyoshi Koizumi het volgende geschreven:
Isn't it better to avoid any behaviour-changing #define's in a header file? I mean the following series of lines in php_embed2.h:I agree... I have moved the defines and inclusion of php_smart_str.h to the php_embed2.c file so it's behavior is internal to this source file only.
TSRM needs to be initialized just once on startup. It's not the thing that has to be initialized per threadTSRM is initialized only once and on startup when using the php_embed2_init call. In threads one simply has to call php_embed2_req_init() to startup the request environment when one needs to run a PHP script.
my 2c, Moriyoshikind regards, Bas van Beek
On Fri, Mar 27, 2009 at 4:35 AM, Bas van Beek <bas@tobin.nl> wrote:Hi Guys, The Embed2 SAPI for embedded applications needing multi-thread enabled PHP scripting support can be inspected from the following repository:-- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.phphttp://svn.tobin.nl/public/php/embed2/trunk/The original Embedded SAPI does not allow concurrent script runs and as such is less suited for multi-threaded applications . Also single threaded applications can benefit from the Embed2 SAPI as for each PHP script run, it is not necessary to initialize and shutdown the entire PHP environment. Examples for embedding PHP using the Embed2 SAPI can be found in the examples directory. The C example uses pthreads to showcase a typical posix implementation. The C++ example uses the boost::thread library to showcase a cross platform implementation. Build instructions / make files are also added for Linux, OS X and Windows If good enough I would like to donate the Embed2 SAPI to the PHP community using the standard PHP License and request a CVS account for adding it to the source tree. The code has been tested to run on PHP-5.2.9 and PHP-5.3.0RC1 and was tested using Mac OS X, Debian Linux and Windows XP. kind regards, Bas van Beek