diff --git a/dep/asio/CMakeLists.txt b/dep/asio/CMakeLists.txt index 59c1dde..64bfb87 100644 --- a/dep/asio/CMakeLists.txt +++ b/dep/asio/CMakeLists.txt @@ -2,8 +2,8 @@ add_library(asio STATIC ${CMAKE_CURRENT_LIST_DIR}/asio/asio/src/asio.cpp) target_include_directories(asio - PUBLIC - ${CMAKE_CURRENT_LIST_DIR}/asio/asio/include) + PUBLIC + ${CMAKE_CURRENT_LIST_DIR}/asio/asio/include) target_compile_definitions(asio PUBLIC diff --git a/examples/asio-banking/example-asio-banking.cpp b/examples/asio-banking/example-asio-banking.cpp index 220ee78..f9a8a0d 100644 --- a/examples/asio-banking/example-asio-banking.cpp +++ b/examples/asio-banking/example-asio-banking.cpp @@ -28,10 +28,44 @@ SOFTWARE. **/ -#include +#include + +#include + #include -int main(int, char**) { +using namespace std::chrono_literals; +struct functional_io_service : asio::io_service { + auto post() const noexcept { + return [this](auto&& work) { + asio::io_service::post(std::forward(work)); + }; + } +}; + +static functional_io_service service; + +auto wait_async(std::chrono::milliseconds time) { + return cti::make_continuable([](auto&& promise) { + // ... + promise.set_value(); + }); +} + +int main(int, char**) { + wait_async(10s) + .then([] { + // ... + + return wait_async(2s); + }) + .then([] { + // ... + }); + + asio::tim + + service.run(); return 0; }