#include <folly/CancellationToken.h>
#include <folly/Optional.h>
#include <folly/synchronization/detail/Sleeper.h>
#include <glog/logging.h>
#include <algorithm>
#include <new>
#include <thread>
#include <tuple>
namespace folly {
namespace detail {
CancellationState::~CancellationState() { … }
bool CancellationState::tryAddCallback(
CancellationCallback* callback,
bool incrementRefCountIfSuccessful) noexcept { … }
void CancellationState::removeCallback(
CancellationCallback* callback) noexcept { … }
bool CancellationState::requestCancellation() noexcept { … }
void CancellationState::lock() noexcept { … }
void CancellationState::unlock() noexcept { … }
void CancellationState::unlockAndIncrementTokenCount() noexcept { … }
void CancellationState::unlockAndDecrementTokenCount() noexcept { … }
bool CancellationState::tryLockAndCancelUnlessCancelled() noexcept { … }
template <typename Predicate>
bool CancellationState::tryLock(Predicate predicate) noexcept { … }
}
}