+void release_reserve_messages(JCR *jcr);
+
+extern int reservations_lock_count;
+extern int vol_list_lock_count;
+
+#ifdef SD_DEBUG_LOCK
+
+#define lock_reservations() \
+ do { Dmsg4(sd_dbglvl, "lock_reservations at %s:%d precnt=%d JobId=%u\n", \
+ __FILE__, __LINE__, \
+ reservations_lock_count, get_jobid_from_tid(pthread_self())); \
+ _lock_reservations(); \
+ Dmsg1(sd_dbglvl, "lock_reservations: got lock JobId=%u\n", \
+ get_jobid_from_tid(pthread_self())); \
+ } while (0)
+#define unlock_reservations() \
+ do { Dmsg4(sd_dbglvl, "unlock_reservations at %s:%d precnt=%d JobId=%u\n", \
+ __FILE__, __LINE__, \
+ reservations_lock_count, get_jobid_from_tid(pthread_self())); \
+ _unlock_reservations(); } while (0)
+
+#define lock_volumes() \
+ do { Dmsg4(sd_dbglvl, "lock_volumes at %s:%d precnt=%d JobId=%u\n", \
+ __FILE__, __LINE__, \
+ vol_list_lock_count, get_jobid_from_tid(pthread_self())); \
+ _lock_volumes(); \
+ Dmsg1(sd_dbglvl, "lock_volumes: got lock JobId=%u\n", \
+ get_jobid_from_tid(pthread_self())); \
+ } while (0)
+
+#define unlock_volumes() \
+ do { Dmsg4(sd_dbglvl, "unlock_volumes at %s:%d precnt=%d JobId=%u\n", \
+ __FILE__, __LINE__, \
+ vol_list_lock_count, get_jobid_from_tid(pthread_self())); \
+ _unlock_volumes(); } while (0)
+
+#else
+
+#define lock_reservations() _lock_reservations()
+#define unlock_reservations() _unlock_reservations()
+#define lock_volumes() _lock_volumes()
+#define unlock_volumes() _unlock_volumes()
+
+#endif
+