MCPcopy Create free account
hub / github.com/ceph/ceph / _linger_commit

Method _linger_commit

src/osdc/Objecter.cc:646–677  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

644}
645
646void Objecter::_linger_commit(LingerOp *info, bs::error_code ec,
647 cb::list& outbl)
648{
649 std::unique_lock wl(info->watch_lock);
650 ldout(cct, 10) << "_linger_commit " << info->linger_id << dendl;
651 if (info->on_reg_commit) {
652 asio::defer(service.get_executor(),
653 asio::append(std::move(info->on_reg_commit),
654 ec, cb::list{}));
655 }
656 if (ec && info->on_notify_finish) {
657 asio::defer(service.get_executor(),
658 asio::append(std::move(info->on_notify_finish),
659 ec, cb::list{}));
660 }
661
662 // only tell the user the first time we do this
663 info->registered = true;
664 info->pobjver = NULL;
665
666 if (!info->is_watch) {
667 // make note of the notify_id
668 auto p = outbl.cbegin();
669 try {
670 decode(info->notify_id, p);
671 ldout(cct, 10) << "_linger_commit notify_id=" << info->notify_id
672 << dendl;
673 }
674 catch (cb::error& e) {
675 }
676 }
677}
678
679class CB_DoWatchError {
680 Objecter *objecter;

Callers 1

operator()Method · 0.80

Calls 5

deferFunction · 0.85
appendFunction · 0.50
decodeFunction · 0.50
get_executorMethod · 0.45
cbeginMethod · 0.45

Tested by

no test coverage detected