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

Side by Side Diff: src/isolate.cc

Issue 316133002: Move atomic ops and related files to base library (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: updates Created 6 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 | Annotate | Revision Log
« no previous file with comments | « src/isolate.h ('k') | src/lazy-instance.h » ('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 <stdlib.h> 5 #include <stdlib.h>
6 6
7 #include "src/v8.h" 7 #include "src/v8.h"
8 8
9 #include "src/ast.h" 9 #include "src/ast.h"
10 #include "src/bootstrapper.h" 10 #include "src/bootstrapper.h"
(...skipping 19 matching lines...) Expand all
30 #include "src/stub-cache.h" 30 #include "src/stub-cache.h"
31 #include "src/sweeper-thread.h" 31 #include "src/sweeper-thread.h"
32 #include "src/utils/random-number-generator.h" 32 #include "src/utils/random-number-generator.h"
33 #include "src/version.h" 33 #include "src/version.h"
34 #include "src/vm-state-inl.h" 34 #include "src/vm-state-inl.h"
35 35
36 36
37 namespace v8 { 37 namespace v8 {
38 namespace internal { 38 namespace internal {
39 39
40 Atomic32 ThreadId::highest_thread_id_ = 0; 40 base::Atomic32 ThreadId::highest_thread_id_ = 0;
41 41
42 int ThreadId::AllocateThreadId() { 42 int ThreadId::AllocateThreadId() {
43 int new_id = NoBarrier_AtomicIncrement(&highest_thread_id_, 1); 43 int new_id = base::NoBarrier_AtomicIncrement(&highest_thread_id_, 1);
44 return new_id; 44 return new_id;
45 } 45 }
46 46
47 47
48 int ThreadId::GetCurrentThreadId() { 48 int ThreadId::GetCurrentThreadId() {
49 int thread_id = Thread::GetThreadLocalInt(Isolate::thread_id_key_); 49 int thread_id = Thread::GetThreadLocalInt(Isolate::thread_id_key_);
50 if (thread_id == 0) { 50 if (thread_id == 0) {
51 thread_id = AllocateThreadId(); 51 thread_id = AllocateThreadId();
52 Thread::SetThreadLocalInt(Isolate::thread_id_key_, thread_id); 52 Thread::SetThreadLocalInt(Isolate::thread_id_key_, thread_id);
53 } 53 }
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
107 Mutex Isolate::process_wide_mutex_; 107 Mutex Isolate::process_wide_mutex_;
108 // TODO(dcarney): Remove with default isolate. 108 // TODO(dcarney): Remove with default isolate.
109 enum DefaultIsolateStatus { 109 enum DefaultIsolateStatus {
110 kDefaultIsolateUninitialized, 110 kDefaultIsolateUninitialized,
111 kDefaultIsolateInitialized, 111 kDefaultIsolateInitialized,
112 kDefaultIsolateCrashIfInitialized 112 kDefaultIsolateCrashIfInitialized
113 }; 113 };
114 static DefaultIsolateStatus default_isolate_status_ 114 static DefaultIsolateStatus default_isolate_status_
115 = kDefaultIsolateUninitialized; 115 = kDefaultIsolateUninitialized;
116 Isolate::ThreadDataTable* Isolate::thread_data_table_ = NULL; 116 Isolate::ThreadDataTable* Isolate::thread_data_table_ = NULL;
117 Atomic32 Isolate::isolate_counter_ = 0; 117 base::Atomic32 Isolate::isolate_counter_ = 0;
118 118
119 Isolate::PerIsolateThreadData* 119 Isolate::PerIsolateThreadData*
120 Isolate::FindOrAllocatePerThreadDataForThisThread() { 120 Isolate::FindOrAllocatePerThreadDataForThisThread() {
121 ThreadId thread_id = ThreadId::Current(); 121 ThreadId thread_id = ThreadId::Current();
122 PerIsolateThreadData* per_thread = NULL; 122 PerIsolateThreadData* per_thread = NULL;
123 { 123 {
124 LockGuard<Mutex> lock_guard(&process_wide_mutex_); 124 LockGuard<Mutex> lock_guard(&process_wide_mutex_);
125 per_thread = thread_data_table_->Lookup(this, thread_id); 125 per_thread = thread_data_table_->Lookup(this, thread_id);
126 if (per_thread == NULL) { 126 if (per_thread == NULL) {
127 per_thread = new PerIsolateThreadData(this, thread_id); 127 per_thread = new PerIsolateThreadData(this, thread_id);
(...skipping 1352 matching lines...) Expand 10 before | Expand all | Expand 10 after
1480 initialized_from_snapshot_(false), 1480 initialized_from_snapshot_(false),
1481 cpu_profiler_(NULL), 1481 cpu_profiler_(NULL),
1482 heap_profiler_(NULL), 1482 heap_profiler_(NULL),
1483 function_entry_hook_(NULL), 1483 function_entry_hook_(NULL),
1484 deferred_handles_head_(NULL), 1484 deferred_handles_head_(NULL),
1485 optimizing_compiler_thread_(NULL), 1485 optimizing_compiler_thread_(NULL),
1486 sweeper_thread_(NULL), 1486 sweeper_thread_(NULL),
1487 num_sweeper_threads_(0), 1487 num_sweeper_threads_(0),
1488 stress_deopt_count_(0), 1488 stress_deopt_count_(0),
1489 next_optimization_id_(0) { 1489 next_optimization_id_(0) {
1490 id_ = NoBarrier_AtomicIncrement(&isolate_counter_, 1); 1490 id_ = base::NoBarrier_AtomicIncrement(&isolate_counter_, 1);
1491 TRACE_ISOLATE(constructor); 1491 TRACE_ISOLATE(constructor);
1492 1492
1493 memset(isolate_addresses_, 0, 1493 memset(isolate_addresses_, 0,
1494 sizeof(isolate_addresses_[0]) * (kIsolateAddressCount + 1)); 1494 sizeof(isolate_addresses_[0]) * (kIsolateAddressCount + 1));
1495 1495
1496 heap_.isolate_ = this; 1496 heap_.isolate_ = this;
1497 stack_guard_.isolate_ = this; 1497 stack_guard_.isolate_ = this;
1498 1498
1499 // ThreadManager is initialized early to support locking an isolate 1499 // ThreadManager is initialized early to support locking an isolate
1500 // before it is entered. 1500 // before it is entered.
(...skipping 832 matching lines...) Expand 10 before | Expand all | Expand 10 after
2333 v8::ToCData<v8::MicrotaskCallback>(callback_info->callback()); 2333 v8::ToCData<v8::MicrotaskCallback>(callback_info->callback());
2334 void* data = v8::ToCData<void*>(callback_info->data()); 2334 void* data = v8::ToCData<void*>(callback_info->data());
2335 callback(data); 2335 callback(data);
2336 } 2336 }
2337 } 2337 }
2338 } 2338 }
2339 } 2339 }
2340 2340
2341 2341
2342 } } // namespace v8::internal 2342 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/isolate.h ('k') | src/lazy-instance.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698