/*
Bacula® - The Network Backup Solution
- Copyright (C) 2000-2007 Free Software Foundation Europe e.V.
+ Copyright (C) 2000-2008 Free Software Foundation Europe e.V.
The main author of Bacula is Kern Sibbald, with contributions from
many others, a complete list can be found in the file AUTHORS.
* DEVICE::dlock() does P(m_mutex) (in dev.h)
* DEVICE::dunlock() does V(m_mutex)
*
+ * DEVICE::r_dlock() allows locking the device when this thread
+ already has the device blocked.
+ * dlock()
+ * if blocked and not same thread that locked
+ * pthread_cond_wait
+ * leaves device locked
+ *
+ * DEVICE::r_dunlock() unlocks but does not unblock
+ * same as dunlock();
+ *
* DEVICE::dblock(why) does
* r_dlock(); (recursive device lock)
* block_device(this, why)
* unblock_device()
* dunlock()
*
- * DEVICE::r_dlock() does recursive locking
- * dlock()
- * if blocked and not same thread that locked
- * pthread_cond_wait
- * leaves device locked
- *
- * DEVICE::r_dunlock()
- * same as dunlock();
- *
* block_device() does (must be locked and not blocked at entry)
* set blocked status
* set our pid