summaryrefslogtreecommitdiffhomepage
path: root/include/ocl
diff options
context:
space:
mode:
Diffstat (limited to 'include/ocl')
-rw-r--r--include/ocl/asio.hpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/include/ocl/asio.hpp b/include/ocl/asio.hpp
index c1e304d..1e4abf5 100644
--- a/include/ocl/asio.hpp
+++ b/include/ocl/asio.hpp
@@ -12,6 +12,7 @@
#else
+#include <boost/asio/strand.hpp>
#include <boost/asio/co_spawn.hpp>
#include <boost/asio/detached.hpp>
#include <boost/asio/io_context.hpp>
@@ -20,4 +21,24 @@
#endif
+namespace ocl::asio
+{
+ using io_context = boost::asio::io_context;
+ using run_pred_type = void(*)();
+
+ template <run_pred_type IOCPred>
+ inline void run_loop(io_context& ioc)
+ {
+ try
+ {
+ ioc.run();
+ }
+ catch (...)
+ {
+ IOCPred();
+ }
+ }
+
+} // namespace ocl
+
#endif