Explorar o código

Properly stop timer thread, closes #138

We need to reset V8JSG(timer_stop) and V8JSG(timer_thread), otherwise
subsequent requests fail on multi-request SAPIs.

If we don't reset those, a subsequent request will not start a new timer
thread (as V8JSG(timer_thread) != NULL), but will try to join the thread
(once more) in GSHUTDOWN as V8JSG(timer_thread) still is non-NULL and
hence cause program termination.
Stefan Siegl %!s(int64=10) %!d(string=hai) anos
pai
achega
79f2056bc3
Modificáronse 1 ficheiros con 2 adicións e 0 borrados
  1. 2 0
      v8js.cc

+ 2 - 0
v8js.cc

@@ -129,6 +129,8 @@ static PHP_RSHUTDOWN_FUNCTION(v8js)
 	if (V8JSG(timer_thread)) {
 		V8JSG(timer_stop) = true;
 		V8JSG(timer_thread)->join();
+		V8JSG(timer_stop) = false;
+		V8JSG(timer_thread) = NULL;
 	}
 
 #if V8JS_DEBUG