Skip to content

Commit fc963cd

Browse files
ofrobotsjasnell
authored andcommitted
src: reduce platform worker barrier lifetime
Minor cleanup in the lifetime for the platform worker initialization synchronization barrier. PR-URL: #23419 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Denys Otrishko <shishugi@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
1 parent db2be04 commit fc963cd

File tree

2 files changed

+9
-10
lines changed

2 files changed

+9
-10
lines changed

src/node_platform.cc

+9-6
Original file line numberDiff line numberDiff line change
@@ -167,17 +167,20 @@ class WorkerThreadsTaskRunner::DelayedTaskScheduler {
167167
};
168168

169169
WorkerThreadsTaskRunner::WorkerThreadsTaskRunner(int thread_pool_size) {
170-
Mutex::ScopedLock lock(platform_workers_mutex_);
171-
pending_platform_workers_ = thread_pool_size;
170+
Mutex platform_workers_mutex;
171+
ConditionVariable platform_workers_ready;
172+
173+
Mutex::ScopedLock lock(platform_workers_mutex);
174+
int pending_platform_workers = thread_pool_size;
172175

173176
delayed_task_scheduler_.reset(
174177
new DelayedTaskScheduler(&pending_worker_tasks_));
175178
threads_.push_back(delayed_task_scheduler_->Start());
176179

177180
for (int i = 0; i < thread_pool_size; i++) {
178181
PlatformWorkerData* worker_data = new PlatformWorkerData{
179-
&pending_worker_tasks_, &platform_workers_mutex_,
180-
&platform_workers_ready_, &pending_platform_workers_, i
182+
&pending_worker_tasks_, &platform_workers_mutex,
183+
&platform_workers_ready, &pending_platform_workers, i
181184
};
182185
std::unique_ptr<uv_thread_t> t { new uv_thread_t() };
183186
if (uv_thread_create(t.get(), PlatformWorkerThread,
@@ -189,8 +192,8 @@ WorkerThreadsTaskRunner::WorkerThreadsTaskRunner(int thread_pool_size) {
189192

190193
// Wait for platform workers to initialize before continuing with the
191194
// bootstrap.
192-
while (pending_platform_workers_ > 0) {
193-
platform_workers_ready_.Wait(lock);
195+
while (pending_platform_workers > 0) {
196+
platform_workers_ready.Wait(lock);
194197
}
195198
}
196199

src/node_platform.h

-4
Original file line numberDiff line numberDiff line change
@@ -117,10 +117,6 @@ class WorkerThreadsTaskRunner {
117117
std::unique_ptr<DelayedTaskScheduler> delayed_task_scheduler_;
118118

119119
std::vector<std::unique_ptr<uv_thread_t>> threads_;
120-
121-
Mutex platform_workers_mutex_;
122-
ConditionVariable platform_workers_ready_;
123-
int pending_platform_workers_;
124120
};
125121

126122
class NodePlatform : public MultiIsolatePlatform {

0 commit comments

Comments
 (0)