std::unique_lock l(rwlock);
if (osdmap->get_epoch()) {
l.unlock();
- boost::asio::post(std::move(handler));
+ boost::asio::post(service.get_executor(), std::move(handler));
} else {
auto e = boost::asio::get_associated_executor(
handler, service.get_executor());
return boost::asio::async_initiate<decltype(consigned), OpSignature>(
[epoch, this](auto handler) {
if (osdmap->get_epoch() >= epoch) {
- boost::asio::post(boost::asio::append(
+ boost::asio::post(service.get_executor(),
+ boost::asio::append(
std::move(handler),
boost::system::error_code{}));
} else {
Args&& ...args)
{
return asio::async_initiate<CompletionToken, void(Args...)>(
- []<typename ...Args2>(auto handler, Args2&& ...args2) mutable {
- asio::post(asio::append(std::move(handler),
- std::forward<Args2>(args2)...));
+ [executor]<typename... Args2>(auto handler, Args2&&... args2) mutable {
+ asio::post(executor,
+ asio::append(std::move(handler),
+ std::forward<Args2>(args2)...));
}, token, std::forward<Args>(args)...);
}