summaryrefslogtreecommitdiff
path: root/chromium/v8/src/base/platform/condition-variable.cc
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2020-11-18 16:35:47 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2020-11-18 15:45:54 +0000
commit32f5a1c56531e4210bc4cf8d8c7825d66e081888 (patch)
treeeeeec6822f4d738d8454525233fd0e2e3a659e6d /chromium/v8/src/base/platform/condition-variable.cc
parent99677208ff3b216fdfec551fbe548da5520cd6fb (diff)
downloadqtwebengine-chromium-32f5a1c56531e4210bc4cf8d8c7825d66e081888.tar.gz
BASELINE: Update Chromium to 87.0.4280.67
Change-Id: Ib157360be8c2ffb2c73125751a89f60e049c1d54 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/v8/src/base/platform/condition-variable.cc')
-rw-r--r--chromium/v8/src/base/platform/condition-variable.cc32
1 files changed, 31 insertions, 1 deletions
diff --git a/chromium/v8/src/base/platform/condition-variable.cc b/chromium/v8/src/base/platform/condition-variable.cc
index 5ea70835eef..04ea29181bb 100644
--- a/chromium/v8/src/base/platform/condition-variable.cc
+++ b/chromium/v8/src/base/platform/condition-variable.cc
@@ -159,7 +159,37 @@ bool ConditionVariable::WaitFor(Mutex* mutex, const TimeDelta& rel_time) {
return result != 0;
}
-#endif // V8_OS_POSIX
+#elif V8_OS_STARBOARD
+
+ConditionVariable::ConditionVariable() {
+ SbConditionVariableCreate(&native_handle_, nullptr);
+}
+
+ConditionVariable::~ConditionVariable() {
+ SbConditionVariableDestroy(&native_handle_);
+}
+
+void ConditionVariable::NotifyOne() {
+ SbConditionVariableSignal(&native_handle_);
+}
+
+void ConditionVariable::NotifyAll() {
+ SbConditionVariableBroadcast(&native_handle_);
+}
+
+void ConditionVariable::Wait(Mutex* mutex) {
+ SbConditionVariableWait(&native_handle_, &mutex->native_handle());
+}
+
+bool ConditionVariable::WaitFor(Mutex* mutex, const TimeDelta& rel_time) {
+ SbTime microseconds = static_cast<SbTime>(rel_time.InMicroseconds());
+ SbConditionVariableResult result = SbConditionVariableWaitTimed(
+ &native_handle_, &mutex->native_handle(), microseconds);
+ DCHECK(result != kSbConditionVariableFailed);
+ return result == kSbConditionVariableSignaled;
+}
+
+#endif // V8_OS_STARBOARD
} // namespace base
} // namespace v8