proxygen
Futex.h File Reference
#include <atomic>
#include <cassert>
#include <chrono>
#include <cstdint>
#include <limits>
#include <type_traits>
#include <folly/portability/Unistd.h>
#include <folly/detail/Futex-inl.h>

Go to the source code of this file.

Classes

struct  folly::detail::EmulatedFutexAtomic< T >
 

Namespaces

 folly
 —— Concurrent Priority Queue Implementation ——
 
 folly::detail
 

Typedefs

template<template< typename > class Atom = std::atomic>
using folly::detail::Futex = Atom< std::uint32_t >
 

Enumerations

enum  folly::detail::FutexResult { folly::detail::FutexResult::VALUE_CHANGED, folly::detail::FutexResult::AWOKEN, folly::detail::FutexResult::INTERRUPTED, folly::detail::FutexResult::TIMEDOUT }
 

Functions

template<typename Futex >
FutexResult folly::detail::futexWait (const Futex *futex, uint32_t expected, uint32_t waitMask)
 
template<typename Futex , class Clock , class Duration >
FutexResult folly::detail::futexWaitUntil (const Futex *futex, uint32_t expected, std::chrono::time_point< Clock, Duration > const &deadline, uint32_t waitMask)
 
template<typename Futex >
int folly::detail::futexWake (const Futex *futex, int count, uint32_t wakeMask)