V8 Project
v8::base::anonymous_namespace{condition-variable-unittest.cc}::FINAL Class Reference
+ Inheritance diagram for v8::base::anonymous_namespace{condition-variable-unittest.cc}::FINAL:
+ Collaboration diagram for v8::base::anonymous_namespace{condition-variable-unittest.cc}::FINAL:

Public Member Functions

 ThreadWithMutexAndConditionVariable ()
 
virtual ~ThreadWithMutexAndConditionVariable ()
 
virtual void Run () OVERRIDE
 
 ThreadWithSharedMutexAndConditionVariable ()
 
virtual ~ThreadWithSharedMutexAndConditionVariable ()
 
virtual void Run () OVERRIDE
 
 LoopIncrementThread (int rem, int *counter, int limit, int thread_count, ConditionVariable *cv, Mutex *mutex)
 
virtual void Run () OVERRIDE
 
- Public Member Functions inherited from v8::base::Thread
 Thread (const Options &options)
 
virtual ~Thread ()
 
void Start ()
 
void StartSynchronously ()
 
void Join ()
 
const char * name () const
 
PlatformDatadata ()
 
void NotifyStartedAndRun ()
 

Public Attributes

bool running_
 
bool finished_
 
ConditionVariable cv_
 
Mutex mutex_
 
ConditionVariable * cv_
 
Mutex * mutex_
 

Private Attributes

const int rem_
 
intcounter_
 
const int limit_
 
const int thread_count_
 

Additional Inherited Members

- Public Types inherited from v8::base::Thread
typedef int32_t LocalStorageKey
 
- Static Public Member Functions inherited from v8::base::Thread
static LocalStorageKey CreateThreadLocalKey ()
 
static void DeleteThreadLocalKey (LocalStorageKey key)
 
static void * GetThreadLocal (LocalStorageKey key)
 
static int GetThreadLocalInt (LocalStorageKey key)
 
static void SetThreadLocal (LocalStorageKey key, void *value)
 
static void SetThreadLocalInt (LocalStorageKey key, int value)
 
static bool HasThreadLocal (LocalStorageKey key)
 
static void * GetExistingThreadLocal (LocalStorageKey key)
 
static void YieldCPU ()
 
- Static Public Attributes inherited from v8::base::Thread
static const int kMaxThreadNameLength = 16
 

Detailed Description

Definition at line 32 of file condition-variable-unittest.cc.

Constructor & Destructor Documentation

◆ ~ThreadWithMutexAndConditionVariable()

virtual v8::base::anonymous_namespace{condition-variable-unittest.cc}::FINAL::~ThreadWithMutexAndConditionVariable ( )
inlinevirtual

Definition at line 38 of file condition-variable-unittest.cc.

38 {}

◆ ~ThreadWithSharedMutexAndConditionVariable()

virtual v8::base::anonymous_namespace{condition-variable-unittest.cc}::FINAL::~ThreadWithSharedMutexAndConditionVariable ( )
inlinevirtual

Definition at line 119 of file condition-variable-unittest.cc.

119 {}

Member Function Documentation

◆ LoopIncrementThread()

v8::base::anonymous_namespace{condition-variable-unittest.cc}::FINAL::LoopIncrementThread ( int  rem,
int counter,
int  limit,
int  thread_count,
ConditionVariable *  cv,
Mutex *  mutex 
)
inline

◆ Run() [1/3]

virtual void v8::base::anonymous_namespace{condition-variable-unittest.cc}::FINAL::Run ( )
inlinevirtual

Implements v8::base::Thread.

Definition at line 40 of file condition-variable-unittest.cc.

40  {
41  LockGuard<Mutex> lock_guard(&mutex_);
42  running_ = true;
43  cv_.NotifyOne();
44  while (running_) {
45  cv_.Wait(&mutex_);
46  }
47  finished_ = true;
48  cv_.NotifyAll();
49  }

◆ Run() [2/3]

virtual void v8::base::anonymous_namespace{condition-variable-unittest.cc}::FINAL::Run ( )
inlinevirtual

Implements v8::base::Thread.

Definition at line 121 of file condition-variable-unittest.cc.

121  {
122  LockGuard<Mutex> lock_guard(mutex_);
123  running_ = true;
124  cv_->NotifyAll();
125  while (running_) {
126  cv_->Wait(mutex_);
127  }
128  finished_ = true;
129  cv_->NotifyAll();
130  }

◆ Run() [3/3]

virtual void v8::base::anonymous_namespace{condition-variable-unittest.cc}::FINAL::Run ( )
inlinevirtual

Implements v8::base::Thread.

Definition at line 236 of file condition-variable-unittest.cc.

236  {
237  int last_count = -1;
238  while (true) {
239  LockGuard<Mutex> lock_guard(mutex_);
240  int count = *counter_;
241  while (count % thread_count_ != rem_ && count < limit_) {
242  cv_->Wait(mutex_);
243  count = *counter_;
244  }
245  if (count >= limit_) break;
246  EXPECT_EQ(*counter_, count);
247  if (last_count != -1) {
248  EXPECT_EQ(last_count + (thread_count_ - 1), count);
249  }
250  count++;
251  *counter_ = count;
252  last_count = count;
253  cv_->NotifyAll();
254  }
255  }

◆ ThreadWithMutexAndConditionVariable()

v8::base::anonymous_namespace{condition-variable-unittest.cc}::FINAL::ThreadWithMutexAndConditionVariable ( )
inline

Definition at line 34 of file condition-variable-unittest.cc.

35  : Thread(Options("ThreadWithMutexAndConditionVariable")),
36  running_(false),
37  finished_(false) {}

◆ ThreadWithSharedMutexAndConditionVariable()

v8::base::anonymous_namespace{condition-variable-unittest.cc}::FINAL::ThreadWithSharedMutexAndConditionVariable ( )
inline

Definition at line 113 of file condition-variable-unittest.cc.

114  : Thread(Options("ThreadWithSharedMutexAndConditionVariable")),
115  running_(false),
116  finished_(false),
117  cv_(NULL),
118  mutex_(NULL) {}
enable harmony numeric enable harmony object literal extensions Optimize object Array DOM strings and string trace pretenuring decisions of HAllocate instructions Enables optimizations which favor memory size over execution speed maximum source size in bytes considered for a single inlining maximum cumulative number of AST nodes considered for inlining trace the tracking of allocation sites deoptimize every n garbage collections perform array bounds checks elimination analyze liveness of environment slots and zap dead values flushes the cache of optimized code for closures on every GC allow uint32 values on optimize frames if they are used only in safe operations track concurrent recompilation artificial compilation delay in ms do not emit check maps for constant values that have a leaf deoptimize the optimized code if the layout of the maps changes enable context specialization in TurboFan execution budget before interrupt is triggered max percentage of megamorphic generic ICs to allow optimization enable use of SAHF instruction if enable use of VFP3 instructions if available enable use of NEON instructions if enable use of SDIV and UDIV instructions if enable use of MLS instructions if enable loading bit constant by means of movw movt instruction enable unaligned accesses for enable use of d16 d31 registers on ARM this requires VFP3 force all emitted branches to be in long enable alignment of csp to bytes on platforms which prefer the register to always be NULL

Member Data Documentation

◆ counter_

int* v8::base::anonymous_namespace{condition-variable-unittest.cc}::FINAL::counter_
private

Definition at line 259 of file condition-variable-unittest.cc.

◆ cv_ [1/2]

ConditionVariable * v8::base::anonymous_namespace{condition-variable-unittest.cc}::FINAL::cv_

Definition at line 53 of file condition-variable-unittest.cc.

◆ cv_ [2/2]

ConditionVariable* v8::base::anonymous_namespace{condition-variable-unittest.cc}::FINAL::cv_

Definition at line 134 of file condition-variable-unittest.cc.

◆ finished_

bool v8::base::anonymous_namespace{condition-variable-unittest.cc}::FINAL::finished_

Definition at line 52 of file condition-variable-unittest.cc.

◆ limit_

const int v8::base::anonymous_namespace{condition-variable-unittest.cc}::FINAL::limit_
private

Definition at line 260 of file condition-variable-unittest.cc.

◆ mutex_ [1/2]

Mutex * v8::base::anonymous_namespace{condition-variable-unittest.cc}::FINAL::mutex_

Definition at line 54 of file condition-variable-unittest.cc.

◆ mutex_ [2/2]

Mutex* v8::base::anonymous_namespace{condition-variable-unittest.cc}::FINAL::mutex_

Definition at line 135 of file condition-variable-unittest.cc.

◆ rem_

const int v8::base::anonymous_namespace{condition-variable-unittest.cc}::FINAL::rem_
private

Definition at line 258 of file condition-variable-unittest.cc.

◆ running_

bool v8::base::anonymous_namespace{condition-variable-unittest.cc}::FINAL::running_

Definition at line 51 of file condition-variable-unittest.cc.

◆ thread_count_

const int v8::base::anonymous_namespace{condition-variable-unittest.cc}::FINAL::thread_count_
private

Definition at line 261 of file condition-variable-unittest.cc.


The documentation for this class was generated from the following file: