Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:43510 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 50951 invoked from network); 27 Mar 2009 07:34:22 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 27 Mar 2009 07:34:22 -0000 Authentication-Results: pb1.pair.com header.from=bas@tobin.nl; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=bas@tobin.nl; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain tobin.nl designates 208.97.132.66 as permitted sender) X-PHP-List-Original-Sender: bas@tobin.nl X-Host-Fingerprint: 208.97.132.66 caiajhbdcagg.dreamhost.com Received: from [208.97.132.66] ([208.97.132.66:58448] helo=spunkymail-a4.g.dreamhost.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id F0/B6-30978-D718CC94 for ; Fri, 27 Mar 2009 02:34:22 -0500 Received: from [192.168.1.100] (82-171-84-74.ip.telfort.nl [82.171.84.74]) by spunkymail-a4.g.dreamhost.com (Postfix) with ESMTP id 2F6E03BA26; Fri, 27 Mar 2009 00:34:18 -0700 (PDT) Cc: internals@lists.php.net Message-ID: To: Moriyoshi Koizumi In-Reply-To: Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit Mime-Version: 1.0 (Apple Message framework v930.3) Date: Fri, 27 Mar 2009 08:34:15 +0100 References: X-Mailer: Apple Mail (2.930.3) Subject: Re: [PHP-DEV] request for comments on threadsafe / multi-thread enabled Embed2 SAPI From: bas@tobin.nl (Bas van Beek) 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 thread TSRM 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, > Moriyoshi kind regards, Bas van Beek > On Fri, Mar 27, 2009 at 4:35 AM, Bas van Beek wrote: >> Hi Guys, >> >> The Embed2 SAPI for embedded applications needing multi-thread >> enabled PHP >> scripting support can be inspected from the following repository: >> >> http://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 >> >> >> > > -- > PHP Internals - PHP Runtime Development Mailing List > To unsubscribe, visit: http://www.php.net/unsub.php >