ID:               27143
 Updated by:       [EMAIL PROTECTED]
 Reported By:      office at hermannseib dot com
-Status:           Open
+Status:           Bogus
 Bug Type:         Zend Engine 2 problem
 Operating System: Win32
 PHP Version:      4.3.4
 New Comment:

We are aware of PHP's problems with stability under IIS and are working

to rectify the problem. Unfortunatly your bug report does not contain
any
extra useful information and we already have enough bug reports open
about
this issue. If you can provide more detailed information such as a 
reproducable crash or a backtrace please do so and reopen this bug. 
Otherwise please keep trying new releases as we are working to resolve 
the problems on this platform
 
Thanks for your interest in PHP.

There is no ZE2 in PHP 4. Check your version in this report.



Previous Comments:
------------------------------------------------------------------------

[2004-02-04 07:45:46] office at hermannseib dot com

Description:
------------
I use php as an ISAPI server extension on my self-written web server.
Works quite well, except when I remove the extension from memory, i.e.,
FreeLibrary(hInst) where hInst is the handle to php4isapi.dll. In most
cases, this causes the DLL to go belly-up.

I traced the problem into the Zend stuff - in zend_shutdown() there's a
call to zend_shutdown_timeout_thread() which terminates the timeut
thread... or at least it's supposed to do so. Unfortunately,
zend_shutdown_timeout_thread() just posts a WM_QUIT message for the
thread and then happily goes on deleting thread data... and when the
timeout thread finally processes the WM_QUIT message, all data are
gone, and it hops to an unused address.

Solution to this problem is simple - just make sure that
zend_shutdown_timeout_thread() allows the other thread to receive the
WM_QUIT message before continuing. I've included a modified version in
the "reproduce code" area below which has the desired effect.

Reproduce code:
---------------
void zend_shutdown_timeout_thread()
{
        if (!timeout_thread_initialized) {
                return;
        }
        PostThreadMessage(timeout_thread_id, WM_QUIT, 0, 0);
        Sleep(0);  // <- this does the trick!
}




------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=27143&edit=1

Reply via email to