diff options
author | Rob Clark <[email protected]> | 2020-04-28 12:39:32 -0700 |
---|---|---|
committer | Marge Bot <[email protected]> | 2020-04-29 20:37:00 +0000 |
commit | 8aacaeca685c4e705a3237c2187f2f9bcef23339 (patch) | |
tree | 36e6f3a674f901d8db0c216052d10d7acb2ea6d5 | |
parent | 3e1b93ec4fa31014c322b970f7d8a057fdec04fe (diff) |
util/simple_mtx: add assert_locked()
Signed-off-by: Rob Clark <[email protected]>
Reviewed-by: Eric Anholt <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4810>
-rw-r--r-- | src/util/simple_mtx.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/util/simple_mtx.h b/src/util/simple_mtx.h index 4fc8a0d4df4..ec3889497f3 100644 --- a/src/util/simple_mtx.h +++ b/src/util/simple_mtx.h @@ -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 |