v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
condition-variable.cc
Go to the documentation of this file.
1
// Copyright 2013 the V8 project authors. All rights reserved.
2
// Use of this source code is governed by a BSD-style license that can be
3
// found in the LICENSE file.
4
5
#include "
src/base/platform/condition-variable.h
"
6
7
#include <errno.h>
8
#include <
time.h
>
9
10
#include "absl/time/time.h"
11
#include "
src/base/platform/time.h
"
12
13
#if V8_OS_WIN
14
#include <windows.h>
15
#endif
16
17
namespace
v8
{
18
namespace
base
{
19
20
ConditionVariable::ConditionVariable
() =
default
;
21
ConditionVariable::~ConditionVariable
() =
default
;
22
23
void
ConditionVariable::NotifyOne
() {
native_handle_
.Signal(); }
24
25
void
ConditionVariable::NotifyAll
() {
native_handle_
.SignalAll(); }
26
27
void
ConditionVariable::Wait
(
Mutex
*
mutex
) {
28
mutex
->AssertHeldAndUnmark();
29
native_handle_
.Wait(&
mutex
->native_handle_);
30
mutex
->AssertUnheldAndMark();
31
}
32
33
bool
ConditionVariable::WaitFor
(
Mutex
*
mutex
,
const
TimeDelta
& rel_time) {
34
uint64_t time = rel_time.
InNanoseconds
();
35
absl::Duration duration = absl::Nanoseconds(time);
36
37
mutex
->AssertHeldAndUnmark();
38
bool
timed_out =
39
native_handle_
.WaitWithTimeout(&
mutex
->native_handle_, duration);
40
41
mutex
->AssertUnheldAndMark();
42
43
return
!timed_out;
44
}
45
46
}
// namespace base
47
}
// namespace v8
v8::base::ConditionVariable::NotifyAll
void NotifyAll()
Definition
condition-variable.cc:25
v8::base::ConditionVariable::Wait
void Wait(Mutex *mutex)
Definition
condition-variable.cc:27
v8::base::ConditionVariable::native_handle_
absl::CondVar native_handle_
Definition
condition-variable.h:70
v8::base::ConditionVariable::WaitFor
bool WaitFor(Mutex *mutex, const TimeDelta &rel_time) V8_WARN_UNUSED_RESULT
Definition
condition-variable.cc:33
v8::base::ConditionVariable::NotifyOne
void NotifyOne()
Definition
condition-variable.cc:23
v8::base::ConditionVariable::~ConditionVariable
~ConditionVariable()
v8::base::ConditionVariable::ConditionVariable
ConditionVariable()
v8::base::Mutex
Definition
mutex.h:36
v8::base::TimeDelta
Definition
time.h:67
v8::base::TimeDelta::InNanoseconds
int64_t InNanoseconds() const
Definition
time.cc:259
condition-variable.h
base
OpIndex base
Definition
instruction-selector-ia32.cc:65
mutex
base::Mutex mutex
Definition
module-compiler.cc:314
v8
Definition
api-arguments-inl.h:19
time.h
src
base
platform
condition-variable.cc
Generated on Sun Apr 6 2025 21:08:50 for v8 by
1.12.0