Create new uv loop in each worker
This commit is contained in:
parent
69df934710
commit
d2f185bea5
2 changed files with 3 additions and 3 deletions
|
@ -98,7 +98,7 @@ base::FilePath GetResourcesPath(bool is_browser) {
|
||||||
|
|
||||||
NodeBindings::NodeBindings(BrowserEnvironment browser_env)
|
NodeBindings::NodeBindings(BrowserEnvironment browser_env)
|
||||||
: browser_env_(browser_env),
|
: browser_env_(browser_env),
|
||||||
uv_loop_(uv_default_loop()),
|
uv_loop_(browser_env == WORKER ? uv_loop_new() : uv_default_loop()),
|
||||||
embed_closed_(false),
|
embed_closed_(false),
|
||||||
uv_env_(nullptr),
|
uv_env_(nullptr),
|
||||||
weak_factory_(this) {
|
weak_factory_(this) {
|
||||||
|
@ -169,7 +169,7 @@ node::Environment* NodeBindings::CreateEnvironment(
|
||||||
|
|
||||||
std::unique_ptr<const char*[]> c_argv = StringVectorToArgArray(args);
|
std::unique_ptr<const char*[]> c_argv = StringVectorToArgArray(args);
|
||||||
node::Environment* env = node::CreateEnvironment(
|
node::Environment* env = node::CreateEnvironment(
|
||||||
new node::IsolateData(context->GetIsolate(), uv_default_loop()), context,
|
new node::IsolateData(context->GetIsolate(), uv_loop_), context,
|
||||||
args.size(), c_argv.get(), 0, nullptr);
|
args.size(), c_argv.get(), 0, nullptr);
|
||||||
|
|
||||||
if (browser_env_ == BROWSER) {
|
if (browser_env_ == BROWSER) {
|
||||||
|
|
|
@ -40,7 +40,7 @@ WebWorkerObserver::~WebWorkerObserver() {
|
||||||
void WebWorkerObserver::ContextCreated(v8::Local<v8::Context> context) {
|
void WebWorkerObserver::ContextCreated(v8::Local<v8::Context> context) {
|
||||||
v8::Context::Scope context_scope(context);
|
v8::Context::Scope context_scope(context);
|
||||||
|
|
||||||
node_bindings_->Initialize();
|
// Start the embed thread.
|
||||||
node_bindings_->PrepareMessageLoop();
|
node_bindings_->PrepareMessageLoop();
|
||||||
|
|
||||||
// Setup node environment for each window.
|
// Setup node environment for each window.
|
||||||
|
|
Loading…
Add table
Reference in a new issue