util/simple_mtx: add assert_locked()
Signed-off-by: Rob Clark <robdclark@chromium.org> Reviewed-by: Eric Anholt <eric@anholt.net> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4810>
This commit is contained in:
parent
3e1b93ec4f
commit
8aacaeca68
|
@ -113,6 +113,12 @@ simple_mtx_unlock(simple_mtx_t *mtx)
|
|||
}
|
||||
}
|
||||
|
||||
static inline void
|
||||
simple_mtx_assert_locked(simple_mtx_t *mtx)
|
||||
{
|
||||
assert(mtx->val);
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
typedef mtx_t simple_mtx_t;
|
||||
|
@ -143,6 +149,22 @@ simple_mtx_unlock(simple_mtx_t *mtx)
|
|||
mtx_unlock(mtx);
|
||||
}
|
||||
|
||||
static inline void
|
||||
simple_mtx_assert_locked(simple_mtx_t *mtx)
|
||||
{
|
||||
#ifdef DEBUG
|
||||
/* NOTE: this would not work for recursive mutexes, but
|
||||
* mtx_t doesn't support those
|
||||
*/
|
||||
int ret = mtx_trylock(mtx);
|
||||
assert(ret == thrd_busy);
|
||||
if (ret == thrd_success)
|
||||
mtx_unlock(mtx);
|
||||
#else
|
||||
(void)mtx;
|
||||
#endif
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue