diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-11-18 16:35:47 +0100 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-11-18 15:45:54 +0000 |
commit | 32f5a1c56531e4210bc4cf8d8c7825d66e081888 (patch) | |
tree | eeeec6822f4d738d8454525233fd0e2e3a659e6d /chromium/v8/src/base/platform/condition-variable.cc | |
parent | 99677208ff3b216fdfec551fbe548da5520cd6fb (diff) | |
download | qtwebengine-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.cc | 32 |
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 |