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? On 07/02/07, Simon Laws <[EMAIL PROTECTED]> wrote:
I've just checked in some changes to the VC project on windows which will hopefully work for you now. I've also updated the build for the PHP Calculator sample. Having said this I can't get it to run on my windows box. As I've said before I'm a bit suspicious of my windows configuration but I'm not getting the same error as before so it's likely that ithis is a real problem with the PHP Extension code. Would still be useful to know if you see a failure in the PHP engine code also.
-- Caroline
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]