+ TDM_INFO("mutex lock"); \
+ struct timespec rtime; \
+ clock_gettime(CLOCK_REALTIME, &rtime); \
+ rtime.tv_sec += MUTEX_TIMEOUT_SEC; \
+ if (pthread_mutex_timedlock(l, &rtime)) { \
+ TDM_ERR("Mutex lock failed PID %d", getpid()); \
+ _pthread_mutex_unlock(l); \
+ } \
+ else { \
+ pthread_mutex_lock(&tdm_mutex_check_lock); \
+ tdm_mutex_locked = 1; \
+ pthread_mutex_unlock(&tdm_mutex_check_lock); \
+ } \
+ } while (0)
+#else //TDM_CONFIG_MUTEX_TIMEOUT
+#define _pthread_mutex_lock(l) \
+ do { \
+ if (tdm_debug_mutex) \
+ TDM_INFO("mutex lock"); \
+ pthread_mutex_lock(l); \