| 469 | } |
| 470 | |
| 471 | void any_io_executor_execute_test() |
| 472 | { |
| 473 | int count = 0; |
| 474 | thread_pool pool(1); |
| 475 | boost::asio::any_io_executor ex(pool.executor()); |
| 476 | |
| 477 | ex.execute(bindns::bind(increment, &count)); |
| 478 | |
| 479 | boost::asio::prefer(ex, boost::asio::execution::blocking.possibly).execute( |
| 480 | bindns::bind(increment, &count)); |
| 481 | |
| 482 | boost::asio::require(ex, boost::asio::execution::blocking.never).execute( |
| 483 | bindns::bind(increment, &count)); |
| 484 | |
| 485 | boost::asio::require( |
| 486 | boost::asio::prefer(ex, boost::asio::execution::outstanding_work.tracked), |
| 487 | boost::asio::execution::blocking.never |
| 488 | ).execute(bindns::bind(increment, &count)); |
| 489 | |
| 490 | boost::asio::require( |
| 491 | boost::asio::prefer(ex, |
| 492 | boost::asio::execution::outstanding_work.untracked), |
| 493 | boost::asio::execution::blocking.never |
| 494 | ).execute(bindns::bind(increment, &count)); |
| 495 | |
| 496 | boost::asio::require( |
| 497 | boost::asio::prefer(ex, |
| 498 | boost::asio::execution::outstanding_work.untracked, |
| 499 | boost::asio::execution::relationship.continuation), |
| 500 | boost::asio::execution::blocking.never |
| 501 | ).execute(bindns::bind(increment, &count)); |
| 502 | |
| 503 | pool.wait(); |
| 504 | |
| 505 | BOOST_ASIO_CHECK(count == 6); |
| 506 | } |
| 507 | |
| 508 | BOOST_ASIO_TEST_SUITE |
| 509 | ( |