diff --git a/matrix/acquire.cc b/matrix/acquire.cc index 59af4fd33..7ba07f79e 100644 --- a/matrix/acquire.cc +++ b/matrix/acquire.cc @@ -72,16 +72,23 @@ ircd::m::acquire::acquire::acquire(const struct opts &opts) // Branch to acquire state if(opts.state) acquire_state(); +} +ircd::m::acquire::~acquire() +noexcept try +{ // Complete all work before returning, otherwise everything // will be cancelled on unwind. while(!fetching.empty()) while(handle()); } - -ircd::m::acquire::~acquire() -noexcept +catch(const ctx::interrupted &) { + return; +} +catch(const ctx::terminated &) +{ + return; } void