From 94e6f08606820138011ca58085ee79b61c58f245 Mon Sep 17 00:00:00 2001 From: Anna Henningsen Date: Sat, 10 Dec 2022 18:16:24 +0100 Subject: [PATCH] src: mark generated `snapshot_data` as `const` This renders the mutex protecting it unnecessary, since mutexes only need to protect concurrent accesses to mutable data. PR-URL: https://github.com/nodejs/node/pull/45786 Reviewed-By: Colin Ihrig Reviewed-By: Yagiz Nizipli Reviewed-By: Joyee Cheung Reviewed-By: Minwoo Jung --- src/node_snapshot_builder.h | 2 -- src/node_snapshotable.cc | 7 ++----- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/src/node_snapshot_builder.h b/src/node_snapshot_builder.h index 7a82c00255e780..ce99dfdd6632b3 100644 --- a/src/node_snapshot_builder.h +++ b/src/node_snapshot_builder.h @@ -31,8 +31,6 @@ class NODE_EXTERN_PRIVATE SnapshotBuilder { v8::Isolate::CreateParams* params); private: - // Used to synchronize access to the snapshot data - static Mutex snapshot_data_mutex_; static const std::vector& CollectExternalReferences(); static std::unique_ptr registry_; diff --git a/src/node_snapshotable.cc b/src/node_snapshotable.cc index cb42a464c2ac0a..b1806ce86630b9 100644 --- a/src/node_snapshotable.cc +++ b/src/node_snapshotable.cc @@ -978,7 +978,7 @@ static void WriteCodeCacheInitializer(std::ostream* ss, const std::string& id) { *ss << " },\n"; } -void FormatBlob(std::ostream& ss, SnapshotData* data) { +void FormatBlob(std::ostream& ss, const SnapshotData* data) { ss << R"(#include #include "env.h" #include "node_snapshot_builder.h" @@ -1004,7 +1004,7 @@ static const int v8_snapshot_blob_size = )" WriteStaticCodeCacheData(&ss, item); } - ss << R"(SnapshotData snapshot_data { + ss << R"(const SnapshotData snapshot_data { // -- data_ownership begins -- SnapshotData::DataOwnership::kNotOwned, // -- data_ownership ends -- @@ -1036,7 +1036,6 @@ static const int v8_snapshot_blob_size = )" }; const SnapshotData* SnapshotBuilder::GetEmbeddedSnapshotData() { - Mutex::ScopedLock lock(snapshot_data_mutex_); return &snapshot_data; } } // namespace node @@ -1053,8 +1052,6 @@ static void ResetContextSettingsBeforeSnapshot(Local context) { context->AllowCodeGenerationFromStrings(true); } -Mutex SnapshotBuilder::snapshot_data_mutex_; - const std::vector& SnapshotBuilder::CollectExternalReferences() { static auto registry = std::make_unique(); return registry->external_references();