diff options
Diffstat (limited to 'include/ocl')
| -rw-r--r-- | include/ocl/asio.hpp | 21 |
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 |
