Commit 0a6bc82e authored by Yedidya Feldblum's avatar Yedidya Feldblum Committed by Facebook Github Bot

Use ptr-to-const in Futex

Summary: [Folly] Use ptr-to-`const` in `Futex`.

Reviewed By: igorsugak

Differential Revision: D6673723

fbshipit-source-id: b828c2284b40ec8166e823eca7725beccd330f87
parent b67b22f4
...@@ -97,11 +97,12 @@ timeSpecFromTimePoint(time_point<Clock> absTime) ...@@ -97,11 +97,12 @@ timeSpecFromTimePoint(time_point<Clock> absTime)
return result; return result;
} }
FutexResult nativeFutexWaitImpl(void* addr, FutexResult nativeFutexWaitImpl(
uint32_t expected, void* addr,
time_point<system_clock>* absSystemTime, uint32_t expected,
time_point<steady_clock>* absSteadyTime, system_clock::time_point const* absSystemTime,
uint32_t waitMask) { steady_clock::time_point const* absSteadyTime,
uint32_t waitMask) {
assert(absSystemTime == nullptr || absSteadyTime == nullptr); assert(absSystemTime == nullptr || absSteadyTime == nullptr);
int op = FUTEX_WAIT_BITSET | FUTEX_PRIVATE_FLAG; int op = FUTEX_WAIT_BITSET | FUTEX_PRIVATE_FLAG;
...@@ -180,8 +181,8 @@ template <typename F> ...@@ -180,8 +181,8 @@ template <typename F>
FutexResult emulatedFutexWaitImpl( FutexResult emulatedFutexWaitImpl(
F* futex, F* futex,
uint32_t expected, uint32_t expected,
time_point<system_clock>* absSystemTime, system_clock::time_point const* absSystemTime,
time_point<steady_clock>* absSteadyTime, steady_clock::time_point const* absSteadyTime,
uint32_t waitMask) { uint32_t waitMask) {
static_assert( static_assert(
std::is_same<F, Futex<std::atomic>>::value || std::is_same<F, Futex<std::atomic>>::value ||
...@@ -240,11 +241,11 @@ Futex<EmulatedFutexAtomic>::futexWake(int count, uint32_t wakeMask) { ...@@ -240,11 +241,11 @@ Futex<EmulatedFutexAtomic>::futexWake(int count, uint32_t wakeMask) {
} }
template <> template <>
FutexResult FutexResult Futex<std::atomic>::futexWaitImpl(
Futex<std::atomic>::futexWaitImpl(uint32_t expected, uint32_t expected,
time_point<system_clock>* absSystemTime, system_clock::time_point const* absSystemTime,
time_point<steady_clock>* absSteadyTime, steady_clock::time_point const* absSteadyTime,
uint32_t waitMask) { uint32_t waitMask) {
#ifdef __linux__ #ifdef __linux__
return nativeFutexWaitImpl( return nativeFutexWaitImpl(
this, expected, absSystemTime, absSteadyTime, waitMask); this, expected, absSystemTime, absSteadyTime, waitMask);
...@@ -255,12 +256,11 @@ Futex<std::atomic>::futexWaitImpl(uint32_t expected, ...@@ -255,12 +256,11 @@ Futex<std::atomic>::futexWaitImpl(uint32_t expected,
} }
template <> template <>
FutexResult FutexResult Futex<EmulatedFutexAtomic>::futexWaitImpl(
Futex<EmulatedFutexAtomic>::futexWaitImpl( uint32_t expected,
uint32_t expected, system_clock::time_point const* absSystemTime,
time_point<system_clock>* absSystemTime, steady_clock::time_point const* absSteadyTime,
time_point<steady_clock>* absSteadyTime, uint32_t waitMask) {
uint32_t waitMask) {
return emulatedFutexWaitImpl( return emulatedFutexWaitImpl(
this, expected, absSystemTime, absSteadyTime, waitMask); this, expected, absSystemTime, absSteadyTime, waitMask);
} }
......
...@@ -125,8 +125,8 @@ struct Futex : Atom<uint32_t>, boost::noncopyable { ...@@ -125,8 +125,8 @@ struct Futex : Atom<uint32_t>, boost::noncopyable {
* is the same as system_clock on some platforms. */ * is the same as system_clock on some platforms. */
FutexResult futexWaitImpl( FutexResult futexWaitImpl(
uint32_t expected, uint32_t expected,
std::chrono::time_point<std::chrono::system_clock>* absSystemTime, std::chrono::system_clock::time_point const* absSystemTime,
std::chrono::time_point<std::chrono::steady_clock>* absSteadyTime, std::chrono::steady_clock::time_point const* absSteadyTime,
uint32_t waitMask); uint32_t waitMask);
}; };
...@@ -149,20 +149,20 @@ int Futex<std::atomic>::futexWake(int count, uint32_t wakeMask); ...@@ -149,20 +149,20 @@ int Futex<std::atomic>::futexWake(int count, uint32_t wakeMask);
template <> template <>
FutexResult Futex<std::atomic>::futexWaitImpl( FutexResult Futex<std::atomic>::futexWaitImpl(
uint32_t expected, uint32_t expected,
std::chrono::time_point<std::chrono::system_clock>* absSystemTime, std::chrono::system_clock::time_point const* absSystemTime,
std::chrono::time_point<std::chrono::steady_clock>* absSteadyTime, std::chrono::steady_clock::time_point const* absSteadyTime,
uint32_t waitMask); uint32_t waitMask);
template <> template <>
int Futex<EmulatedFutexAtomic>::futexWake(int count, uint32_t wakeMask); int Futex<EmulatedFutexAtomic>::futexWake(int count, uint32_t wakeMask);
template <> template <>
FutexResult Futex<EmulatedFutexAtomic>::futexWaitImpl( FutexResult Futex<EmulatedFutexAtomic>::futexWaitImpl(
uint32_t expected, uint32_t expected,
std::chrono::time_point<std::chrono::system_clock>* absSystemTime, std::chrono::system_clock::time_point const* absSystemTime,
std::chrono::time_point<std::chrono::steady_clock>* absSteadyTime, std::chrono::steady_clock::time_point const* absSteadyTime,
uint32_t waitMask); uint32_t waitMask);
} // namespace detail } // namespace detail
} // namespace folly } // namespace folly
...@@ -289,8 +289,8 @@ using namespace std::chrono; ...@@ -289,8 +289,8 @@ using namespace std::chrono;
template <> template <>
FutexResult Futex<DeterministicAtomic>::futexWaitImpl( FutexResult Futex<DeterministicAtomic>::futexWaitImpl(
uint32_t expected, uint32_t expected,
time_point<system_clock>* absSystemTimeout, system_clock::time_point const* absSystemTimeout,
time_point<steady_clock>* absSteadyTimeout, steady_clock::time_point const* absSteadyTimeout,
uint32_t waitMask) { uint32_t waitMask) {
bool hasTimeout = absSystemTimeout != nullptr || absSteadyTimeout != nullptr; bool hasTimeout = absSystemTimeout != nullptr || absSteadyTimeout != nullptr;
bool awoken = false; bool awoken = false;
......
...@@ -496,8 +496,8 @@ int Futex<test::DeterministicAtomic>::futexWake(int count, uint32_t wakeMask); ...@@ -496,8 +496,8 @@ int Futex<test::DeterministicAtomic>::futexWake(int count, uint32_t wakeMask);
template <> template <>
FutexResult Futex<test::DeterministicAtomic>::futexWaitImpl( FutexResult Futex<test::DeterministicAtomic>::futexWaitImpl(
uint32_t expected, uint32_t expected,
std::chrono::time_point<std::chrono::system_clock>* absSystemTime, std::chrono::system_clock::time_point const* absSystemTime,
std::chrono::time_point<std::chrono::steady_clock>* absSteadyTime, std::chrono::steady_clock::time_point const* absSteadyTime,
uint32_t waitMask); uint32_t waitMask);
} // namespace detail } // namespace detail
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment