proxygen
|
Functions | |
std::cv_status | toCvStatus (FutexResult result) |
std::cv_status | toCvStatus (ParkResult result) |
template<template< typename... > class Atom, typename... Args> | |
void | atomic_wait_impl (const Atom< std::uint32_t, Args... > *atomic, std::uint32_t expected) |
template<template< typename... > class Atom, typename Integer , typename... Args> | |
void | atomic_wait_impl (const Atom< Integer, Args... > *atomic, Integer expected) |
template<template< typename... > class Atom, typename... Args, typename Clock , typename Duration > | |
std::cv_status | atomic_wait_until_impl (const Atom< std::uint32_t, Args... > *atomic, std::uint32_t expected, const std::chrono::time_point< Clock, Duration > &deadline) |
template<template< typename... > class Atom, typename Integer , typename... Args, typename Clock , typename Duration > | |
std::cv_status | atomic_wait_until_impl (const Atom< Integer, Args... > *atomic, Integer expected, const std::chrono::time_point< Clock, Duration > &deadline) |
template<template< typename... > class Atom, typename... Args> | |
void | atomic_notify_one_impl (const Atom< std::uint32_t, Args... > *atomic) |
template<template< typename... > class Atom, typename Integer , typename... Args> | |
void | atomic_notify_one_impl (const Atom< Integer, Args... > *atomic) |
template<template< typename... > class Atom, typename Integer , typename... Args> | |
void | atomic_notify_all_impl (const Atom< std::uint32_t, Args... > *atomic) |
template<template< typename... > class Atom, typename Integer , typename... Args> | |
void | atomic_notify_all_impl (const Atom< Integer, Args... > *atomic) |
Variables | |
ParkingLot< std::uint32_t > | parkingLot |
void folly::detail::atomic_notification::atomic_notify_all_impl | ( | const Atom< std::uint32_t, Args... > * | atomic | ) |
Definition at line 108 of file AtomicNotification-inl.h.
References testing::Args(), Atom, and folly::detail::futexWake().
Referenced by folly::atomic_notify_all().
void folly::detail::atomic_notification::atomic_notify_all_impl | ( | const Atom< Integer, Args... > * | atomic | ) |
Definition at line 114 of file AtomicNotification-inl.h.
References folly::data(), FOLLY_SAFE_DCHECK, max, folly::RemoveContinue, and folly::ParkingLot< Data >::unpark().
void folly::detail::atomic_notification::atomic_notify_one_impl | ( | const Atom< std::uint32_t, Args... > * | atomic | ) |
Definition at line 93 of file AtomicNotification-inl.h.
References testing::Args(), Atom, and folly::detail::futexWake().
Referenced by folly::atomic_notify_one().
void folly::detail::atomic_notification::atomic_notify_one_impl | ( | const Atom< Integer, Args... > * | atomic | ) |
Definition at line 99 of file AtomicNotification-inl.h.
References testing::Args(), Atom, folly::data(), FOLLY_SAFE_DCHECK, max, folly::RemoveBreak, and folly::ParkingLot< Data >::unpark().
void folly::detail::atomic_notification::atomic_wait_impl | ( | const Atom< std::uint32_t, Args... > * | atomic, |
std::uint32_t | expected | ||
) |
Definition at line 51 of file AtomicNotification-inl.h.
References testing::Args(), Atom, and folly::detail::futexWait().
Referenced by folly::atomic_wait().
void folly::detail::atomic_notification::atomic_wait_impl | ( | const Atom< Integer, Args... > * | atomic, |
Integer | expected | ||
) |
Definition at line 59 of file AtomicNotification-inl.h.
References testing::Args(), Atom, and folly::ParkingLot< Data >::park().
std::cv_status folly::detail::atomic_notification::atomic_wait_until_impl | ( | const Atom< std::uint32_t, Args... > * | atomic, |
std::uint32_t | expected, | ||
const std::chrono::time_point< Clock, Duration > & | deadline | ||
) |
Definition at line 70 of file AtomicNotification-inl.h.
References testing::Args(), Atom, folly::detail::futexWaitUntil(), and toCvStatus().
Referenced by folly::atomic_wait_until().
std::cv_status folly::detail::atomic_notification::atomic_wait_until_impl | ( | const Atom< Integer, Args... > * | atomic, |
Integer | expected, | ||
const std::chrono::time_point< Clock, Duration > & | deadline | ||
) |
Definition at line 83 of file AtomicNotification-inl.h.
References testing::Args(), Atom, folly::ParkingLot< Data >::park_until(), and toCvStatus().
|
inline |
We use Futex<std::atomic> as the alias that has the lowest performance overhead with respect to atomic notifications. Assert that atomic_uint_fast_wait_t is the same as Futex<std::atomic> Implementation and specializations for the atomic_wait() family of functions
Definition at line 38 of file AtomicNotification-inl.h.
References folly::detail::TIMEDOUT.
Referenced by atomic_wait_until_impl().
|
inline |
Definition at line 42 of file AtomicNotification-inl.h.
References testing::Args(), Atom, parkingLot, and folly::Timeout.
ParkingLot< std::uint32_t > folly::detail::atomic_notification::parkingLot |
Definition at line 29 of file AtomicNotification.cpp.
Referenced by toCvStatus().