Home
last modified time | relevance | path

Searched refs:futex (Results 1 - 11 of 11) sorted by relevance

/arkcompiler/runtime_core/static_core/platforms/unix/libpandabase/futex/
H A Dmutex.h31 #include <linux/futex.h>
33 namespace ark::os::unix::memory::futex { namespace in ark::os::unix::memory
76 return futex::GetStateAddr(&mutex_); in GetStateAddr()
81 futex::IncrementWaiters(&mutex_); in IncrementWaiters()
86 futex::DecrementWaiters(&mutex_); in DecrementWaiters()
93 return futex::GetWaiters(&mutex_); in GetWaiters()
98 return futex::IsHeld(&mutex_, thread); in IsHeld()
252 futex(GetStateAddr(), FUTEX_WAKE_PRIVATE, WAKE_ALL, nullptr, nullptr, 0); in WakeAllWaiters()
275 futex::ConditionVariableInit(&cond_); in ConditionVariable()
280 futex in ~ConditionVariable()
[all...]
H A Dfmutex.h46 #include <linux/futex.h>
47 namespace ark::os::unix::memory::futex { namespace in ark::os::unix::memory
79 // GenMC does not support syscalls(futex)
83 inline int futex(volatile int *uaddr, int op, int val, const struct timespec *timeout, volatile int *uaddr2, int val3) in futex() function
135 } // namespace ark::os::unix::memory::futex
H A Dfmutex.cpp30 namespace ark::os::unix::memory::futex { namespace in ark::os::unix::memory
39 // GenMC does not support syscalls(futex)
61 // futex() is defined in header, as it is still included in different places
182 if (futex(GetStateAddr(m), FUTEX_WAIT_PRIVATE, curState, nullptr, nullptr, 0) != 0 && (errno != EAGAIN) && in WaitForUnlock()
223 // WaitBrieflyFor failed, go to futex wait in MutexLock()
296 // If we had waiters, we need to do futex call in MutexUnlock()
302 futex(GetStateAddr(m), FUTEX_WAKE_PRIVATE, WAKE_ONE, nullptr, nullptr, 0); in MutexUnlock()
412 if (futex(GetCondAddr(cond), FUTEX_WAIT_PRIVATE, curCond, nullptr, nullptr, 0) != 0) { in Wait()
473 if (futex(GetCondAddr(cond), waitFlag, curCond, &time, nullptr, matchFlag) != 0) { in TimedWait()
513 bool success = futex(GetCondAdd in SignalCount()
[all...]
H A Dmutex.cpp28 namespace ark::os::unix::memory::futex { namespace in ark::os::unix::memory
140 if (futex(GetStateAddr(), FUTEX_WAIT_PRIVATE, curState, nullptr, nullptr, 0) != 0) { in FutexWait()
167 // WaitBrieflyFor failed, go to futex wait in WriteLock()
185 if (futex(GetStateAddr(), FUTEX_WAIT_PRIVATE, curState, nullptr, nullptr, 0) != 0) { in WaitForFutex()
196 // WaitBrieflyFor failed, go to futex wait in HandleReadLockWait()
284 } // namespace ark::os::unix::memory::futex
/arkcompiler/runtime_core/platforms/unix/libpandabase/futex/
H A Dmutex.h30 #include <linux/futex.h>
33 namespace panda::os::unix::memory::futex { namespace in panda::os::unix::memory
77 return futex::GetStateAddr(&mutex_); in GetStateAddr()
82 futex::IncrementWaiters(&mutex_); in IncrementWaiters()
87 futex::DecrementWaiters(&mutex_); in DecrementWaiters()
94 return futex::GetWaiters(&mutex_); in GetWaiters()
99 return futex::IsHeld(&mutex_, thread); in IsHeld()
195 futex(GetStateAddr(), FUTEX_WAKE_PRIVATE, WAKE_ALL, nullptr, nullptr, 0); in RELEASE_SHARED()
305 } // namespace panda::os::unix::memory::futex
H A Dmutex.cpp27 namespace panda::os::unix::memory::futex { namespace in panda::os::unix::memory
149 // WaitBrieflyFor failed, go to futex wait in WriteLock()
156 if (futex(GetStateAddr(), FUTEX_WAIT_PRIVATE, cur_state, nullptr, nullptr, 0) != 0) { in WriteLock()
181 // WaitBrieflyFor failed, go to futex wait in HandleReadLockWait()
186 if (futex(GetStateAddr(), FUTEX_WAIT_PRIVATE, cur_state, nullptr, nullptr, 0) != 0) { in HandleReadLockWait()
271 futex(GetStateAddr(), FUTEX_WAKE_PRIVATE, WAKE_ALL, nullptr, nullptr, 0); in WriteUnlock()
324 if (futex(GetCondAddr(), FUTEX_WAIT_PRIVATE, cur_cond, nullptr, nullptr, 0) != 0) { in Wait()
389 futex_call_res = futex(GetCondAddr(), WAIT_BITSET, cur_cond, &time, nullptr, MATCH_ANY); in TimedWait()
393 futex_call_res = futex(GetCondAddr(), FUTEX_WAIT_PRIVATE, cur_cond, &time, nullptr, 0); in TimedWait()
430 bool success = futex(GetCondAdd in SignalCount()
[all...]
H A Dfmutex.h46 #include <linux/futex.h>
48 namespace panda::os::unix::memory::futex { namespace in panda::os::unix::memory
74 // GenMC does not support syscalls(futex)
77 inline int futex(volatile int *uaddr, int op, int val, const struct timespec *timeout, volatile int *uaddr2, int val3) in futex() function
112 } // namespace panda::os::unix::memory::futex
H A Dfmutex.cpp31 namespace panda::os::unix::memory::futex { namespace in panda::os::unix::memory
40 // GenMC does not support syscalls(futex)
62 // futex() is defined in header, as it is still included in different places
199 // WaitBrieflyFor failed, go to futex wait in MutexLock()
212 if (futex(GetStateAddr(m), FUTEX_WAIT_PRIVATE, curState, nullptr, nullptr, 0) != 0) { in MutexLock()
286 // If we had waiters, we need to do futex call in MutexUnlock()
292 futex(GetStateAddr(m), FUTEX_WAKE_PRIVATE, WAKE_ONE, nullptr, nullptr, 0); in MutexUnlock()
326 } // namespace panda::os::unix::memory::futex
/arkcompiler/runtime_core/libpandabase/os/
H A Dmutex.h20 #include "platforms/unix/libpandabase/futex/mutex.h"
45 using Mutex = panda::os::unix::memory::futex::Mutex;
46 using RecursiveMutex = panda::os::unix::memory::futex::RecursiveMutex;
47 using RWLock = panda::os::unix::memory::futex::RWLock;
48 using ConditionVariable = panda::os::unix::memory::futex::ConditionVariable;
/arkcompiler/runtime_core/static_core/libpandabase/tests/
H A Dfutex_test.cpp16 #include "platforms/unix/libpandabase/futex/fmutex.h"
24 struct ark::os::unix::memory::futex::fmutex g_futex;
26 struct ark::os::unix::memory::futex::CondVar g_condvar;
215 SignalCount(&g_condvar, ark::os::unix::memory::futex::WAKE_ONE); in TEST()
263 SignalCount(&g_condvar, ark::os::unix::memory::futex::WAKE_ALL); in TEST()
/arkcompiler/runtime_core/static_core/libpandabase/os/
H A Dmutex.h20 #include "platforms/unix/libpandabase/futex/mutex.h"
59 using Mutex = ark::os::unix::memory::futex::Mutex;
60 using RecursiveMutex = ark::os::unix::memory::futex::RecursiveMutex;
61 using RWLock = ark::os::unix::memory::futex::RWLock;
62 using ConditionVariable = ark::os::unix::memory::futex::ConditionVariable;

Completed in 7 milliseconds