/*
- * Copyright 2016 Facebook, Inc.
+ * Copyright 2017-present Facebook, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
timeoutHandler.cancelTimeout();
}
-bool Baton::timed_wait(TimeoutController::Duration timeout) {
- return timed_wait(timeout, []() {});
-}
-
void Baton::waitThread() {
if (spinWaitForEarlyPost()) {
assert(waitingFiber_.load(std::memory_order_acquire) == POSTED);
fiber == NO_WAITER &&
waitingFiber_.compare_exchange_strong(fiber, THREAD_WAITING))) {
do {
- folly::detail::MemoryIdler::futexWait(futex_.futex, THREAD_WAITING);
+ folly::detail::MemoryIdler::futexWait(
+ futex_.futex, uint32_t(THREAD_WAITING));
fiber = waitingFiber_.load(std::memory_order_acquire);
} while (fiber == THREAD_WAITING);
}
auto deadline = TimeoutController::Clock::now() + timeout;
do {
const auto wait_rv =
- futex_.futex.futexWaitUntil(THREAD_WAITING, deadline);
+ futex_.futex.futexWaitUntil(uint32_t(THREAD_WAITING), deadline);
if (wait_rv == folly::detail::FutexResult::TIMEDOUT) {
return false;
}
} while (!waitingFiber_.compare_exchange_weak(fiber, new_value));
if (fiber != NO_WAITER) {
- reinterpret_cast<Fiber*>(fiber)->setData(0);
+ reinterpret_cast<Fiber*>(fiber)->resume();
}
}
fiberManager_->timeoutManager_->cancel(timeoutPtr_);
}
}
-}
-}
+} // namespace fibers
+} // namespace folly