Support the PHP extension under Windows
---------------------------------------

                 Key: TUSCANY-1133
                 URL: https://issues.apache.org/jira/browse/TUSCANY-1133
             Project: Tuscany
          Issue Type: Improvement
          Components: C++ SCA
    Affects Versions: Cpp-current
            Reporter: Caroline Maynard
            Priority: Minor
             Fix For: Cpp-current


I've been battling with getting this working under Windows, and attach a patch 
with my latest efforts. Note that these changes work hand-in-hand with 
corresponding changes to the Tuscany bindings for PHP SCA, which are already in 
place in the AVOCET branch in the PECL repository.

On my Windows box with the patch installed, the PHP Calculator sample runs 
clean, with no crashes on shutdown and no reported leaks of PHP memory.

I've also done quite a bit of tidying up, to make the inner workings a more 
standard use of the PHP engine. In particular, I've broken out the big 
php_eval_script() into its component parts, which makes it much easier to 
debug. Unfortunately I haven't had time to refactor 
SCA_TuscanyWrapper::invoke() subsequently, so it is rather a long sprawl at 
present and could do with further prettying. I also hid the SCA_Tuscany object 
handle from user space, because exporting the handle as a reference was rather 
dangerous code.

One thing I haven't yet tackled is getting the thread context right for 
reentrant paths through the extension. I've been investigating this, and I 
think it's going to require saving a thread context in each of the mediator 
objects, and restoring the correct one on invoke(). However what's there seems 
to work OK in the simple environment of the PHP Calculator sample.

I'm out for a few days now - could someone give it a spin on *IX and make sure 
that's still OK? 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to