★ wanayoo — archive 1999 https://github.com/nodejs/node/commit/4df3ac2a63Nouvelle recherche | Portail wanayoo
Skip to content
Permalink
Browse files
src: remove loop_init_failed_ from Worker class
There’s no reason for this to not be stored alongside the loop
data structure itself.

PR-URL: #32562
Refs: #32344
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Denys Otrishko <shishugi@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
  • Loading branch information
addaleax authored and targos committed Apr 11, 2020
1 parent 0faaa7c commit 4df3ac2a639ecdb08e9dbe48c2a4b40d6d3ae3ab
Showing with 7 additions and 5 deletions.
  1. +7 −4 src/node_worker.cc
  2. +0 −1 src/node_worker.h
@@ -140,10 +140,10 @@ class WorkerThreadData {
uv_err_name_r(ret, err_buf, sizeof(err_buf));
w->custom_error_ = "ERR_WORKER_INIT_FAILED";
w->custom_error_str_ = err_buf;
w->loop_init_failed_ = true;
w->stopped_ = true;
return;
}
loop_init_failed_ = false;

std::shared_ptr<ArrayBufferAllocator> allocator =
ArrayBufferAllocator::Create();
@@ -199,6 +199,7 @@ class WorkerThreadData {
}

if (isolate != nullptr) {
CHECK(!loop_init_failed_);
bool platform_finished = false;

isolate_data_.reset();
@@ -217,18 +218,20 @@ class WorkerThreadData {

// Wait until the platform has cleaned up all relevant resources.
while (!platform_finished) {
CHECK(!w_->loop_init_failed_);
uv_run(&loop_, UV_RUN_ONCE);
}
}
if (!w_->loop_init_failed_) {
if (!loop_init_failed_) {
CheckedUvLoopClose(&loop_);
}
}

bool loop_is_usable() const { return !loop_init_failed_; }

private:
Worker* const w_;
uv_loop_t loop_;
bool loop_init_failed_ = true;
DeleteFnPtr<IsolateData, FreeIsolateData> isolate_data_;

friend class Worker;
@@ -258,7 +261,7 @@ void Worker::Run() {

WorkerThreadData data(this);
if (isolate_ == nullptr) return;
CHECK(!data.w_->loop_init_failed_);
CHECK(data.loop_is_usable());

Debug(this, "Starting worker with id %llu", thread_id_);
{
@@ -86,7 +86,6 @@ class Worker : public AsyncWrap {
bool thread_joined_ = true;
const char* custom_error_ = nullptr;
std::string custom_error_str_;
bool loop_init_failed_ = false;
int exit_code_ = 0;
uint64_t thread_id_ = -1;
uintptr_t stack_base_ = 0;

0 comments on commit 4df3ac2

Please sign in to comment.