MCPcopy Create free account
hub / github.com/RT-Thread/rt-thread / _futex_get

Function _futex_get

components/lwp/lwp_futex.c:409–424  ·  view source on GitHub ↗

* @brief Get a futex (private or shared) for given user address * * @param[in] uaddr User-space address to lookup futex for * @param[in] lwp Pointer to lightweight process structure * @param[in] op_flags Operation flags (FUTEX_PRIVATE for private futex) * @param[out] rc Pointer to store result code (0 on success, error code on failure) * * @return Pointer to existing/new futex on success, N

Source from the content-addressed store, hash-verified

407 * - _sftx_get for shared futexes (FUTEX_PRIVATE flag not set)
408 */
409static rt_futex_t _futex_get(void *uaddr, struct rt_lwp *lwp, int op_flags,
410 rt_err_t *rc)
411{
412 rt_futex_t futex = RT_NULL;
413
414 if (op_flags & FUTEX_PRIVATE)
415 {
416 futex = _pftx_get(uaddr, lwp, op_flags, rc);
417 }
418 else
419 {
420 futex = _sftx_get(uaddr, lwp, op_flags, rc);
421 }
422
423 return futex;
424}
425
426/**
427 * @brief Suspend a thread with timeout and add it to futex waiting list

Callers 2

lwp_futexFunction · 0.85
_handle_futex_deathFunction · 0.85

Calls 2

_pftx_getFunction · 0.85
_sftx_getFunction · 0.85

Tested by

no test coverage detected