Would be nice if we could also have lockdep, like in the linux kernel. But this is better than nothing.
Signed-off-by: Rob Clark <robdcl...@gmail.com> --- src/gallium/auxiliary/os/os_thread.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/gallium/auxiliary/os/os_thread.h b/src/gallium/auxiliary/os/os_thread.h index be8adcc..ec8adbc 100644 --- a/src/gallium/auxiliary/os/os_thread.h +++ b/src/gallium/auxiliary/os/os_thread.h @@ -116,6 +116,22 @@ typedef mtx_t pipe_mutex; #define pipe_mutex_unlock(mutex) \ (void) mtx_unlock(&(mutex)) +#define pipe_mutex_assert_locked(mutex) \ + __pipe_mutex_assert_locked(&(mutex)) + +static inline void +__pipe_mutex_assert_locked(pipe_mutex *mutex) +{ +#ifdef DEBUG + /* NOTE: this would not work for recursive mutexes, but + * pipe_mutex doesn't support those + */ + int ret = mtx_trylock(mutex); + assert(ret == thrd_busy); + if (ret == thrd_success) + mtx_unlock(mutex); +#endif +} /* pipe_condvar */ -- 2.7.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev