http://tracker.ceph.com/issues/5510 refs #5510
Signed-off-by: Loic Dachary <loic@dachary.org>
dout(20) << " kicking pg " << p->first << dendl;
p->second->lock();
p->second->on_shutdown();
- p->second->kick();
p->second->unlock();
p->second->osr->flush();
}
{
const OSDMapRef osdmap = get_osdmap();
- // -- there was a change! --
- kick();
-
set_last_peering_reset();
vector<int> oldacting, oldup;
* put_unlock() when done with the current pointer (_most common_).
*/
Mutex _lock;
- Cond _cond;
atomic_t ref;
#ifdef PG_DEBUG_REFS
bool is_locked() const {
return _lock.is_locked();
}
- void wait() {
- assert(_lock.is_locked());
- _cond.Wait(_lock);
- }
- void kick() {
- assert(_lock.is_locked());
- _cond.Signal();
- }
#ifdef PG_DEBUG_REFS
uint64_t get_with_id();
if (obc->registered)
object_contexts.erase(obc->obs.oi.soid);
delete obc;
-
- if (object_contexts.empty())
- kick();
}
}