diff options
Diffstat (limited to '3rdparty/asio/src/examples/cpp11/executors/bank_account_2.cpp')
-rw-r--r-- | 3rdparty/asio/src/examples/cpp11/executors/bank_account_2.cpp | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/3rdparty/asio/src/examples/cpp11/executors/bank_account_2.cpp b/3rdparty/asio/src/examples/cpp11/executors/bank_account_2.cpp index b646cb29518..45a24abc352 100644 --- a/3rdparty/asio/src/examples/cpp11/executors/bank_account_2.cpp +++ b/3rdparty/asio/src/examples/cpp11/executors/bank_account_2.cpp @@ -1,11 +1,9 @@ -#include <asio/post.hpp> -#include <asio/thread_pool.hpp> -#include <asio/use_future.hpp> +#include <asio/execution.hpp> +#include <asio/static_thread_pool.hpp> #include <iostream> -using asio::post; -using asio::thread_pool; -using asio::use_future; +using asio::static_thread_pool; +namespace execution = asio::execution; // Traditional active object pattern. // Member functions block until operation is finished. @@ -13,35 +11,37 @@ using asio::use_future; class bank_account { int balance_ = 0; - mutable thread_pool pool_{1}; + mutable static_thread_pool pool_{1}; public: void deposit(int amount) { - post(pool_, - use_future([=] + asio::require(pool_.executor(), execution::blocking.always).execute( + [this, amount] { balance_ += amount; - })).get(); + }); } void withdraw(int amount) { - post(pool_, - use_future([=] + asio::require(pool_.executor(), execution::blocking.always).execute( + [this, amount] { if (balance_ >= amount) balance_ -= amount; - })).get(); + }); } int balance() const { - return post(pool_, - use_future([=] + int result = 0; + asio::require(pool_.executor(), execution::blocking.always).execute( + [this, &result] { - return balance_; - })).get(); + result = balance_; + }); + return result; } }; |