Bug 757375: Concurrency bug fix (p=dtomack)
integrate 1130666
CL@1134637
--- a/shell/avmshell.cpp
+++ b/shell/avmshell.cpp
@@ -109,25 +109,27 @@ namespace avmshell
if (instance->settings.do_log)
initializeLogging(instance->settings.numfiles > 0 ? instance->settings.filenames[0] : "AVMLOG");
#ifdef VMCFG_WORKERTHREADS
if (instance->settings.numworkers == 1 && instance->settings.numthreads == 1 && instance->settings.repeats == 1)
{
avmplus::Isolate* isolate = instance->newIsolate(NULL);
instance->stateTransition(isolate, avmplus::Isolate::CANSTART);
+ isolate->IncrementRef();
isolate->run();
}
else
{
instance->multiWorker(instance->settings);
}
#else
avmplus::Isolate* isolate = instance->newIsolate(NULL);
instance->stateTransition(isolate, avmplus::Isolate::CANSTART);
+ isolate->IncrementRef();
isolate->run();
#endif
instance->waitUntilNoIsolates();
// Shell is refcounted now
//mmfx_delete(instance);
}
MMgc::GCHeap::Destroy();