Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:43331 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 45612 invoked from network); 12 Mar 2009 16:25:39 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 12 Mar 2009 16:25:39 -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.83 as permitted sender) X-PHP-List-Original-Sender: bas@tobin.nl X-Host-Fingerprint: 208.97.132.83 caiajhbdcaid.dreamhost.com Received: from [208.97.132.83] ([208.97.132.83:43701] helo=spunkymail-a9.g.dreamhost.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id D5/72-30999-18739B94 for ; Thu, 12 Mar 2009 11:25:38 -0500 Received: from [192.168.1.100] (82-171-84-74.ip.telfort.nl [82.171.84.74]) by spunkymail-a9.g.dreamhost.com (Postfix) with ESMTP id 9105F1FCEF for ; Thu, 12 Mar 2009 09:25:34 -0700 (PDT) Message-ID: To: internals@lists.php.net 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: Thu, 12 Mar 2009 17:25:32 +0100 X-Mailer: Apple Mail (2.930.3) Subject: embed sapi module and multi-threading From: bas@tobin.nl (Bas van Beek) Hi, For a project of mine I had to have an embedded webserver with php support. For this I've used the boost::asio multi-threaded example as a base and modified it so I could enable php scripting support. The first, logical and fast thing to do was to try out the embed sapi module but I found it to hang on concurrent php_embed_init calls. The biggest issue I found was that the embedded module bundles sapi module startup and request startup. I ended up writing my own SAPI module as I also needed full support for POST methods, URL queries, etc. but I can imagine people being interested in having an embedded sapi which separates module startup/shutdown and request startup/ shutdown so concurrency works together with being able to have separate request environments for each thread. Separating these calls would allow for the following: At program startup initialize the php environment At each thread startup initialize a php request environment With a few minor alterations I could convert my specific sapi module or current embed module to a generic embed-mt multithread capable module. Would this be something that you are interested in? kind regards, Bas van Beek