X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=bacula%2Fsrc%2Fstored%2Flock.c;h=647dd19dcf01f25f44b2e34c6ec072ebcdfc6efc;hb=1bf3065ec3bd9c1d65a14ee98b6e42bf7077ba16;hp=9b2a4ca1f8a80b4e97a0afaa7e53083275f1d75a;hpb=30cf45b57ee8ca6c66185881cff7098e4d450121;p=bacula%2Fbacula diff --git a/bacula/src/stored/lock.c b/bacula/src/stored/lock.c index 9b2a4ca1f8..647dd19dcf 100644 --- a/bacula/src/stored/lock.c +++ b/bacula/src/stored/lock.c @@ -1,7 +1,7 @@ /* 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. @@ -88,6 +88,16 @@ const int dbglvl = 500; * 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) @@ -98,15 +108,6 @@ const int dbglvl = 500; * 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