Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(144)

Side by Side Diff: src/isolate.cc

Issue 2912773002: Rename "NoBarrier" memory operations to "Relaxed". (Closed)
Patch Set: comment Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/isolate.h ('k') | src/libplatform/tracing/tracing-controller.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/isolate.h" 5 #include "src/isolate.h"
6 6
7 #include <stdlib.h> 7 #include <stdlib.h>
8 8
9 #include <fstream> // NOLINT(readability/streams) 9 #include <fstream> // NOLINT(readability/streams)
10 #include <sstream> 10 #include <sstream>
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
55 #include "src/wasm/wasm-module.h" 55 #include "src/wasm/wasm-module.h"
56 #include "src/wasm/wasm-objects.h" 56 #include "src/wasm/wasm-objects.h"
57 #include "src/zone/accounting-allocator.h" 57 #include "src/zone/accounting-allocator.h"
58 58
59 namespace v8 { 59 namespace v8 {
60 namespace internal { 60 namespace internal {
61 61
62 base::Atomic32 ThreadId::highest_thread_id_ = 0; 62 base::Atomic32 ThreadId::highest_thread_id_ = 0;
63 63
64 int ThreadId::AllocateThreadId() { 64 int ThreadId::AllocateThreadId() {
65 int new_id = base::NoBarrier_AtomicIncrement(&highest_thread_id_, 1); 65 int new_id = base::Relaxed_AtomicIncrement(&highest_thread_id_, 1);
66 return new_id; 66 return new_id;
67 } 67 }
68 68
69 69
70 int ThreadId::GetCurrentThreadId() { 70 int ThreadId::GetCurrentThreadId() {
71 int thread_id = base::Thread::GetThreadLocalInt(Isolate::thread_id_key_); 71 int thread_id = base::Thread::GetThreadLocalInt(Isolate::thread_id_key_);
72 if (thread_id == 0) { 72 if (thread_id == 0) {
73 thread_id = AllocateThreadId(); 73 thread_id = AllocateThreadId();
74 base::Thread::SetThreadLocalInt(Isolate::thread_id_key_, thread_id); 74 base::Thread::SetThreadLocalInt(Isolate::thread_id_key_, thread_id);
75 } 75 }
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
182 } 182 }
183 return per_thread; 183 return per_thread;
184 } 184 }
185 185
186 186
187 void Isolate::InitializeOncePerProcess() { 187 void Isolate::InitializeOncePerProcess() {
188 base::LockGuard<base::Mutex> lock_guard(thread_data_table_mutex_.Pointer()); 188 base::LockGuard<base::Mutex> lock_guard(thread_data_table_mutex_.Pointer());
189 CHECK(thread_data_table_ == NULL); 189 CHECK(thread_data_table_ == NULL);
190 isolate_key_ = base::Thread::CreateThreadLocalKey(); 190 isolate_key_ = base::Thread::CreateThreadLocalKey();
191 #if DEBUG 191 #if DEBUG
192 base::NoBarrier_Store(&isolate_key_created_, 1); 192 base::Relaxed_Store(&isolate_key_created_, 1);
193 #endif 193 #endif
194 thread_id_key_ = base::Thread::CreateThreadLocalKey(); 194 thread_id_key_ = base::Thread::CreateThreadLocalKey();
195 per_isolate_thread_data_key_ = base::Thread::CreateThreadLocalKey(); 195 per_isolate_thread_data_key_ = base::Thread::CreateThreadLocalKey();
196 thread_data_table_ = new Isolate::ThreadDataTable(); 196 thread_data_table_ = new Isolate::ThreadDataTable();
197 } 197 }
198 198
199 199
200 Address Isolate::get_address_from_id(Isolate::AddressId id) { 200 Address Isolate::get_address_from_id(Isolate::AddressId id) {
201 return isolate_addresses_[id]; 201 return isolate_addresses_[id];
202 } 202 }
(...skipping 2134 matching lines...) Expand 10 before | Expand all | Expand 10 after
2337 is_running_microtasks_(false), 2337 is_running_microtasks_(false),
2338 use_counter_callback_(NULL), 2338 use_counter_callback_(NULL),
2339 basic_block_profiler_(NULL), 2339 basic_block_profiler_(NULL),
2340 cancelable_task_manager_(new CancelableTaskManager()), 2340 cancelable_task_manager_(new CancelableTaskManager()),
2341 abort_on_uncaught_exception_callback_(NULL), 2341 abort_on_uncaught_exception_callback_(NULL),
2342 total_regexp_code_generated_(0) { 2342 total_regexp_code_generated_(0) {
2343 { 2343 {
2344 base::LockGuard<base::Mutex> lock_guard(thread_data_table_mutex_.Pointer()); 2344 base::LockGuard<base::Mutex> lock_guard(thread_data_table_mutex_.Pointer());
2345 CHECK(thread_data_table_); 2345 CHECK(thread_data_table_);
2346 } 2346 }
2347 id_ = base::NoBarrier_AtomicIncrement(&isolate_counter_, 1); 2347 id_ = base::Relaxed_AtomicIncrement(&isolate_counter_, 1);
2348 TRACE_ISOLATE(constructor); 2348 TRACE_ISOLATE(constructor);
2349 2349
2350 memset(isolate_addresses_, 0, 2350 memset(isolate_addresses_, 0,
2351 sizeof(isolate_addresses_[0]) * (kIsolateAddressCount + 1)); 2351 sizeof(isolate_addresses_[0]) * (kIsolateAddressCount + 1));
2352 2352
2353 heap_.isolate_ = this; 2353 heap_.isolate_ = this;
2354 stack_guard_.isolate_ = this; 2354 stack_guard_.isolate_ = this;
2355 2355
2356 // ThreadManager is initialized early to support locking an isolate 2356 // ThreadManager is initialized early to support locking an isolate
2357 // before it is entered. 2357 // before it is entered.
(...skipping 25 matching lines...) Expand all
2383 2383
2384 2384
2385 void Isolate::TearDown() { 2385 void Isolate::TearDown() {
2386 TRACE_ISOLATE(tear_down); 2386 TRACE_ISOLATE(tear_down);
2387 2387
2388 // Temporarily set this isolate as current so that various parts of 2388 // Temporarily set this isolate as current so that various parts of
2389 // the isolate can access it in their destructors without having a 2389 // the isolate can access it in their destructors without having a
2390 // direct pointer. We don't use Enter/Exit here to avoid 2390 // direct pointer. We don't use Enter/Exit here to avoid
2391 // initializing the thread data. 2391 // initializing the thread data.
2392 PerIsolateThreadData* saved_data = CurrentPerIsolateThreadData(); 2392 PerIsolateThreadData* saved_data = CurrentPerIsolateThreadData();
2393 DCHECK(base::NoBarrier_Load(&isolate_key_created_) == 1); 2393 DCHECK(base::Relaxed_Load(&isolate_key_created_) == 1);
2394 Isolate* saved_isolate = 2394 Isolate* saved_isolate =
2395 reinterpret_cast<Isolate*>(base::Thread::GetThreadLocal(isolate_key_)); 2395 reinterpret_cast<Isolate*>(base::Thread::GetThreadLocal(isolate_key_));
2396 SetIsolateThreadLocals(this, NULL); 2396 SetIsolateThreadLocals(this, NULL);
2397 2397
2398 Deinit(); 2398 Deinit();
2399 2399
2400 { 2400 {
2401 base::LockGuard<base::Mutex> lock_guard(thread_data_table_mutex_.Pointer()); 2401 base::LockGuard<base::Mutex> lock_guard(thread_data_table_mutex_.Pointer());
2402 thread_data_table_->RemoveAllThreads(this); 2402 thread_data_table_->RemoveAllThreads(this);
2403 } 2403 }
(...skipping 1364 matching lines...) Expand 10 before | Expand all | Expand 10 after
3768 // Then check whether this scope intercepts. 3768 // Then check whether this scope intercepts.
3769 if ((flag & intercept_mask_)) { 3769 if ((flag & intercept_mask_)) {
3770 intercepted_flags_ |= flag; 3770 intercepted_flags_ |= flag;
3771 return true; 3771 return true;
3772 } 3772 }
3773 return false; 3773 return false;
3774 } 3774 }
3775 3775
3776 } // namespace internal 3776 } // namespace internal
3777 } // namespace v8 3777 } // namespace v8
OLDNEW
« no previous file with comments | « src/isolate.h ('k') | src/libplatform/tracing/tracing-controller.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698