mirror of
https://github.com/matrix-construct/construct
synced 2024-11-17 07:20:55 +01:00
ircd::ios: Add asio::defer() to interface.
This commit is contained in:
parent
8c68a24e1f
commit
58c5ac7855
2 changed files with 28 additions and 7 deletions
|
@ -54,8 +54,10 @@ namespace ircd::ios
|
||||||
const string_view &name(const handler &);
|
const string_view &name(const handler &);
|
||||||
|
|
||||||
void dispatch(descriptor &, std::function<void ()>);
|
void dispatch(descriptor &, std::function<void ()>);
|
||||||
|
void defer(descriptor &, std::function<void ()>);
|
||||||
void post(descriptor &, std::function<void ()>);
|
void post(descriptor &, std::function<void ()>);
|
||||||
void dispatch(std::function<void ()>);
|
void dispatch(std::function<void ()>);
|
||||||
|
void defer(std::function<void ()>);
|
||||||
void post(std::function<void ()>);
|
void post(std::function<void ()>);
|
||||||
void init(asio::io_context &user);
|
void init(asio::io_context &user);
|
||||||
}
|
}
|
||||||
|
@ -65,6 +67,7 @@ namespace ircd
|
||||||
using ios::assert_main_thread;
|
using ios::assert_main_thread;
|
||||||
using ios::is_main_thread;
|
using ios::is_main_thread;
|
||||||
using ios::dispatch;
|
using ios::dispatch;
|
||||||
|
using ios::defer;
|
||||||
using ios::post;
|
using ios::post;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
32
ircd/ios.cc
32
ircd/ios.cc
|
@ -70,6 +70,17 @@ ircd::ios::post(std::function<void ()> function)
|
||||||
post(descriptor, std::move(function));
|
post(descriptor, std::move(function));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
ircd::ios::defer(std::function<void ()> function)
|
||||||
|
{
|
||||||
|
static descriptor descriptor
|
||||||
|
{
|
||||||
|
"ircd::ios defer"
|
||||||
|
};
|
||||||
|
|
||||||
|
defer(descriptor, std::move(function));
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ircd::ios::dispatch(std::function<void ()> function)
|
ircd::ios::dispatch(std::function<void ()> function)
|
||||||
{
|
{
|
||||||
|
@ -81,13 +92,6 @@ ircd::ios::dispatch(std::function<void ()> function)
|
||||||
dispatch(descriptor, std::move(function));
|
dispatch(descriptor, std::move(function));
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
|
||||||
ircd::ios::post(descriptor &descriptor,
|
|
||||||
std::function<void ()> function)
|
|
||||||
{
|
|
||||||
boost::asio::post(get(), handle(descriptor, std::move(function)));
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
ircd::ios::dispatch(descriptor &descriptor,
|
ircd::ios::dispatch(descriptor &descriptor,
|
||||||
std::function<void ()> function)
|
std::function<void ()> function)
|
||||||
|
@ -95,6 +99,20 @@ ircd::ios::dispatch(descriptor &descriptor,
|
||||||
boost::asio::dispatch(get(), handle(descriptor, std::move(function)));
|
boost::asio::dispatch(get(), handle(descriptor, std::move(function)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
ircd::ios::defer(descriptor &descriptor,
|
||||||
|
std::function<void ()> function)
|
||||||
|
{
|
||||||
|
boost::asio::defer(get(), handle(descriptor, std::move(function)));
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
ircd::ios::post(descriptor &descriptor,
|
||||||
|
std::function<void ()> function)
|
||||||
|
{
|
||||||
|
boost::asio::post(get(), handle(descriptor, std::move(function)));
|
||||||
|
}
|
||||||
|
|
||||||
boost::asio::io_context &
|
boost::asio::io_context &
|
||||||
ircd::ios::get()
|
ircd::ios::get()
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue