Selaa lähdekoodia

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 10 vuotta sitten
vanhempi
commit
79f2056bc3
1 muutettua tiedostoa jossa 2 lisäystä ja 0 poistoa
  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