]>
git.proxmox.com Git - ceph.git/blob - ceph/src/crimson/osd/pg_activation_blocker.cc
1 // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:nil -*-
2 // vim: ts=8 sw=2 smarttab expandtab
4 #include "crimson/osd/pg.h"
5 #include "crimson/osd/pg_activation_blocker.h"
7 namespace crimson::osd
{
9 void PGActivationBlocker::dump_detail(Formatter
*f
) const
11 f
->dump_stream("pgid") << pg
->get_pgid();
14 void PGActivationBlocker::unblock()
21 PGActivationBlocker::wait(PGActivationBlocker::BlockingEvent::TriggerI
&& trigger
)
23 if (pg
->get_peering_state().is_active()) {
24 return seastar::now();
26 return trigger
.maybe_record_blocking(p
.get_shared_future(), *this);
30 seastar::future
<> PGActivationBlocker::stop()
32 p
.set_exception(crimson::common::system_shutdown_exception());
33 return seastar::now();
36 } // namespace crimson::osd