// static logger
-Mutex client_logger_lock;
+Mutex client_logger_lock("client_logger_lock");
LogType client_logtype;
Logger *client_logger = 0;
// cons/des
-Client::Client(Messenger *m, MonMap *mm) : timer(client_lock)
+Client::Client(Messenger *m, MonMap *mm) : timer(client_lock), client_lock("Client::client_lock")
{
// which client am i?
whoami = m->get_myname().num();
bufferlist bl;
bl.push_back(bp);
- Mutex lock;
+ Mutex lock("lock");
Cond cond;
int unack = 0;
prime += 2;
}
- Mutex lock;
+ Mutex lock("lock");
Cond cond;
int unack = 0;
while (pos < size) {
int get = MIN(size-pos, 1048576);
- Mutex lock;
+ Mutex lock("lock");
Cond cond;
bool done;
bufferlist bl;
static Client *client;
-Mutex stag_lock;
+Mutex stag_lock("fuse_ll.cc stag_lock");
int last_stag = 0;
hash_map<__u64,int> snap_stag_map;
hash_map<int,__u64> stag_snap_map;
Mutex lock;
public:
- Clock() {
+ Clock() : lock("Clock::lock") {
// set offset
//tare();
}
void start();
void stop();
- Finisher() : finisher_stop(false), finisher_thread(this) {}
+ Finisher() : finisher_lock("Finisher::finisher_lock"), finisher_stop(false), finisher_thread(this) {}
};
#endif
#include "common/Timer.h"
// per-process lock. lame, but this way I protect LogType too!
-Mutex logger_lock;
+Mutex logger_lock("logger_lock");
SafeTimer logger_timer(logger_lock);
Context *logger_event = 0;
list<Logger*> logger_list;
class Mutex {
private:
+ const char *name;
pthread_mutex_t _m;
int nlock;
bool recursive;
Mutex( const Mutex &M ) {}
public:
- Mutex(bool r = true) : nlock(0), recursive(r) {
+ Mutex(const char *n, bool r = true) : name(n), nlock(0), recursive(r) {
if (recursive) {
pthread_mutexattr_t attr;
pthread_mutexattr_init(&attr);
};
};
+
#endif
public:
- Semaphore()
+ Semaphore() : m("Semaphore::m")
{
count = 0;
}
public:
ThreadPool(char *myname, int howmany, void (*f)(U,T), U obj, void (*pf)(U,T) = 0) :
+ q_lock("ThreadPool::q_lock"),
num_ops(0), num_threads(howmany),
thread(num_threads),
u(obj),
public:
Timer() :
thread_stop(false),
+ lock("Timer::lock"),
timed_sleep(false),
sleeping(false),
timer_thread(this),
// debug output
-Mutex _dout_lock;
+Mutex _dout_lock("_dout_lock");
ostream *_dout = &std::cout;
ostream *_derr = &std::cerr;
char _dout_file[100] = {0};
OSDMap osdmap;
-Mutex lock;
+Mutex lock("dumpjournal.cc lock");
Cond cond;
Messenger *messenger = 0;
public:
BlockDevice(const char *d) :
dev(d), fd(0), num_blocks(0),
+ lock("BlockDevice::lock"),
root_queue(this, dev.c_str()),
io_stop(false), io_threads_started(0), io_threads_running(0), is_idle_waiting(false),
+ complete_lock("BlockDevice::complete_lock"),
complete_queue_len(0),
complete_thread(this),
- idle_kicker(0), kicker_thread(this) { }
+ idle_kicker(0), kicker_lock("BlockDevice::kicker_lock"), kicker_thread(this) { }
~BlockDevice() {
if (fd > 0) close();
}
public:
Ebofs(const char *devfn, const char *jfn=0) :
+ ebofs_lock("Ebofs::ebofs_lock"),
fake_writes(false),
dev(devfn),
mounted(false), unmounting(false), dirty(false), readonly(false),
Mutex lock;
long nref;
public:
- atomic_t(int i=0) : lock(false), nref(i) {}
+ atomic_t(int i=0) : lock("atomic_t::lock", false), nref(i) {}
atomic_t(const atomic_t& other);
void inc() {
lock.Lock();
hash_map<const char *, stringrec, hash<const char*>, eqstr> stab;
public:
+ stringtable() : lock("stringtable::lock") {}
// @s must be null terminated
const char *get_cstr(const char *s, int len) {
// cons/des
MDS::MDS(int whoami, Messenger *m, MonMap *mm) :
+ mds_lock("MDS::mds_lock"),
timer(mds_lock),
sessionmap(this) {
#define dout(x) if (x <= g_conf.debug || x <= g_conf.debug_mon) *_dout << dbeginl << g_clock.now() << " monclient "
#define derr(x) if (x <= g_conf.debug || x <= g_conf.debug_mon) *_derr << dbeginl << g_clock.now() << " monclient "
-Mutex monmap_lock;
+Mutex monmap_lock("monmap_lock");
Cond monmap_cond;
bufferlist monmap_bl;
Monitor::Monitor(int w, MonitorStore *s, Messenger *m, MonMap *map) :
whoami(w),
messenger(m),
+ lock("Monitor::lock"),
monmap(map),
timer(lock), tick_timer(0),
store(s),
public:
Pipe(int st) :
sd(-1),
+ lock("Rank::Pipe::lock"),
state(st),
reader_running(false), writer_running(false),
connect_seq(0), peer_global_seq(0),
public:
EntityMessenger(entity_name_t name, int r) :
Messenger(name),
+ lock("Rank::EntityMessenger::lock"),
stop(false),
qlen(0),
my_rank(r),
void reaper();
public:
- Rank() : started(false), need_addr(true),
- max_local(0), num_local(0) { }
+ Rank() : lock("Rank::lock"), started(false), need_addr(true),
+ max_local(0), num_local(0),
+ global_seq_lock("Rank::global_seq_lock"), global_seq(0) { }
~Rank() { }
//void set_listen_addr(tcpaddr_t& a);
hash_map<coll_t, set<pobject_t> > fakecollections;
public:
- FakeCollections(ObjectStore *s) : store(s) {}
+ FakeCollections(ObjectStore *s) : faker_lock("FakeCollections::faker_lock"), store(s) {}
// faked collections
int list_collections(vector<coll_t>& ls) {
hash_map<coll_t, FakeAttrSet> fakecattrs;
public:
- FakeAttrs(ObjectStore *s) : store(s) {}
+ FakeAttrs(ObjectStore *s) : faker_lock("FakeAttrs::faker_lock"), store(s) {}
int setattr(coll_t cid, pobject_t oid, const char *name,
const void *value, size_t size,
last_committed_seq(0),
full_commit_seq(0), full_restart_seq(0),
fd(-1),
+ write_lock("FileJournal::write_lock"),
write_stop(false), write_thread(this) { }
~FileJournal() {}
return 0;
}
-Mutex sig_lock;
+Mutex sig_lock("FileStore.cc sig_lock");
Cond sig_cond;
bool sig_installed = false;
int sig_pending = 0;
lock_fd(-1),
attrs(this), fake_attrs(false),
collections(this), fake_collections(false),
+ lock("FileStore::lock"),
stop(false), sync_thread(this) { }
int mount();
}
public:
- JournalingObjectStore() : op_seq(0), committing_op_seq(0), journal(0) { }
+ JournalingObjectStore() : op_seq(0), committing_op_seq(0), journal(0),
+ journal_lock("JournalingObjectStore::journal_lock"),
+ lock("JournalingObjectStore::lock") { }
};
LogType osd_logtype;
OSD::OSD(int id, Messenger *m, MonMap *mm, const char *dev) :
+ osd_lock("OSD::osd_lock"),
timer(osd_lock),
whoami(id), dev_name(dev),
stat_oprate(5.0),
+ peer_stat_lock("OSD::peer_stat_lock"),
read_latency_calc(g_conf.osd_max_opq<1 ? 1:g_conf.osd_max_opq),
qlen_calc(3),
iat_averager(g_conf.osd_flash_crowd_iat_alpha),
+ finished_lock("OSD::finished_lock"),
+ snap_trimmer_lock("OSD::snap_trimmer_lock"),
snap_trimmer_thread(this),
- recovery_ops_active(0), recovery_stop(false), recovery_thread(this)
+ pg_stat_queue_lock("OSD::pg_stat_queue_lock"),
+ tid_lock("OSD::tid_lock"),
+ recovery_lock("OSD::recovery_lock"),
+ recovery_ops_active(0), recovery_stop(false),
+ remove_list_lock("OSD::remove_list_lock"),
+ recovery_thread(this)
{
messenger = m;
monmap = mm;
double m_Total;
public:
- MovingAverager(unsigned size) : m_Size(size), m_Total(0) { }
+ MovingAverager(unsigned size) : lock("OSD::MovingAverager::lock"), m_Size(size), m_Total(0) { }
void set_size(unsigned size) {
m_Size = size;
hash_map<object_t, iat_data> iat_map;
public:
- IATAverager(double a) : alpha(a) {}
+ IATAverager(double a) : lock("IATAverager::lock"),alpha(a) {}
void add_sample(object_t oid, double now) {
Mutex::Locker locker(lock);
public:
PG(OSD *o, pg_t p) :
osd(o),
+ _lock("PG::_lock"),
ref(0), deleted(false),
info(p),
recovery_item(this), recovery_ops_active(0),
have_master_log(true),
must_notify_mon(false),
stat_num_bytes(0), stat_num_kb(0),
+ pg_stats_lock("PG::pg_stats_lock"),
pg_stats_valid(false),
finish_sync_event(NULL)
{ }
C_OSD_RepModifyCommit(ReplicatedPG *p, MOSDSubOp *oo, int dosd, eversion_t lc) :
pg(p), op(oo), destosd(dosd), pg_last_complete(lc),
+ lock("C_OSD_RepModifyCommit::lock"),
acked(false), waiting(false) {
pg->get(); // we're copying the pointer.
}
};
map<off_t,io> writes;
-Mutex lock;
+Mutex lock("streamtest.cc lock");
void pr(off_t off)