-
binji authored
The issue is that Worker.prototype.terminate was deleting the C++ Worker object, and then Worker.prototype.getMessage was trying to read messages from the queue. The simplest solution is to keep workers in a zombie state when they have been terminated. They won't be reaped until Shell::CleanupWorkers is called. I've also fixed some threading issues with Workers: * Workers can be created by another Worker, so the Shell::workers_ variable must be protected by a mutex. * An individual Worker can typically only be accessed by the isolate that created it, but the main thread can always terminate it, so the Worker::state_ must be accessed in a thread-safe way. BUG=chromium:504136 R=jochen@chromium.org LOG=n Review URL: https://codereview.chromium.org/1208733002 Cr-Commit-Position: refs/heads/master@{#29306}
28b0129b
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
benchmarks | ||
cctest | ||
intl | ||
js-perf-test | ||
memory | ||
message | ||
mjsunit | ||
mozilla | ||
preparser | ||
promises-aplus | ||
simdjs | ||
test262 | ||
test262-es6 | ||
unittests | ||
webkit |