Skip to content
Permalink
Browse files

deps: V8: use ATOMIC_VAR_INIT instead of std::atomic_init

`std::atomic_init<size_t>` is not implemented in all platforms.

* pragma to ignore `-Wbraced-scalar-init`

Backport-PR-URL: #28955
PR-URL: #27375
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Ujjwal Sharma <usharma1998@gmail.com>
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
  • Loading branch information...
refack authored and targos committed May 23, 2019
1 parent d940403 commit 94c8d068f81552632ca2358af8560b946fa08e68
Showing with 12 additions and 11 deletions.
  1. +1 −1 common.gypi
  2. +11 −10 deps/v8/src/wasm/module-compiler.cc
@@ -38,7 +38,7 @@

# Reset this number to 0 on major V8 upgrades.
# Increment by one for each non-official patch applied to deps/v8.
'v8_embedder_string': '-node.6',
'v8_embedder_string': '-node.7',

##### V8 defaults for Node.js #####

@@ -152,9 +152,6 @@ class CompilationUnitQueues {
for (int task_id = 0; task_id < max_tasks; ++task_id) {
queues_[task_id].next_steal_task_id = next_task_id(task_id);
}
for (auto& atomic_counter : num_units_) {
std::atomic_init(&atomic_counter, size_t{0});
}
}

base::Optional<WasmCompilationUnit> GetNextUnit(
@@ -257,14 +254,15 @@ class CompilationUnitQueues {
};

struct BigUnitsQueue {
BigUnitsQueue() {
for (auto& atomic : has_units) std::atomic_init(&atomic, false);
}
BigUnitsQueue() = default;

base::Mutex mutex;

// Can be read concurrently to check whether any elements are in the queue.
std::atomic<bool> has_units[kNumTiers];
std::atomic_bool has_units[kNumTiers] = {
ATOMIC_VAR_INIT(false),
ATOMIC_VAR_INIT(false)
};

// Protected by {mutex}:
std::priority_queue<BigUnit> units[kNumTiers];
@@ -273,8 +271,11 @@ class CompilationUnitQueues {
std::vector<Queue> queues_;
BigUnitsQueue big_units_queue_;

std::atomic<size_t> num_units_[kNumTiers];
std::atomic<int> next_queue_to_add{0};
std::atomic_size_t num_units_[kNumTiers] = {
ATOMIC_VAR_INIT(0),
ATOMIC_VAR_INIT(0)
};
std::atomic_int next_queue_to_add{0};

int next_task_id(int task_id) const {
int next = task_id + 1;
@@ -472,7 +473,7 @@ class CompilationStateImpl {

// Compilation error, atomically updated. This flag can be updated and read
// using relaxed semantics.
std::atomic<bool> compile_failed_{false};
std::atomic_bool compile_failed_{false};

const int max_background_tasks_ = 0;

0 comments on commit 94c8d06

Please sign in to comment.
You can’t perform that action at this time.