mirror of
https://github.com/ceph/ceph
synced 2025-02-18 16:37:41 +00:00
objecter: add new wait_for_osd_map function.
This commit is contained in:
parent
68f7fedea1
commit
86d6e51e8b
@ -211,6 +211,20 @@ void Objecter::handle_osd_map(MOSDMap *m)
|
||||
monc->sub_got("osdmap", osdmap->get_epoch());
|
||||
}
|
||||
|
||||
void Objecter::wait_for_osd_map()
|
||||
{
|
||||
if (osdmap->get_epoch()) return;
|
||||
Mutex lock("");
|
||||
Cond cond;
|
||||
bool done;
|
||||
lock.Lock();
|
||||
C_SafeCond *context = new C_SafeCond(&lock, &cond, &done, NULL);
|
||||
waiting_for_map[0].push_back(pair<Context*, int>(context, 0));
|
||||
while (!done)
|
||||
cond.Wait(lock);
|
||||
lock.Unlock();
|
||||
}
|
||||
|
||||
|
||||
void Objecter::maybe_request_map()
|
||||
{
|
||||
|
@ -468,6 +468,7 @@ public:
|
||||
void dispatch(Message *m);
|
||||
void handle_osd_op_reply(class MOSDOpReply *m);
|
||||
void handle_osd_map(class MOSDMap *m);
|
||||
void wait_for_osd_map();
|
||||
|
||||
private:
|
||||
// low-level
|
||||
|
Loading…
Reference in New Issue
Block a user