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 <robdclark@gmail.com>
#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
*/