New functions for locking a channel - these simplify debugging
[asterisk/asterisk.git] / include / asterisk / lock.h
index 97deac1..ab6dde3 100644 (file)
@@ -761,4 +761,16 @@ AST_INLINE_API(int ast_atomic_dec_and_test(volatile int *p),
 }
 )
 
+#ifndef DEBUG_CHANNEL_LOCKS
+/*! \brief Lock a channel. If DEBUG_CHANNEL_LOCKS is defined 
+       in the Makefile, print relevant output for debugging */
+#define ast_channel_lock(x)            ast_mutex_lock(x->lock);
+/*! \brief Unlock a channel. If DEBUG_CHANNEL_LOCKS is defined 
+       in the Makefile, print relevant output for debugging */
+#define ast_channel_unlock(x)          ast_mutex_unlock(x->lock);
+/*! \brief Try locking a channel. If DEBUG_CHANNEL_LOCKS is defined 
+       in the Makefile, print relevant output for debugging */
+#define ast_channel_trylock(x)         ast_mutex_trylock(x->lock);
+#endif
+
 #endif /* _ASTERISK_LOCK_H */