mirror of
https://github.com/enduro2d/enduro2d.git
synced 2025-12-14 16:09:06 +07:00
jobber: wait_for and wait_until
This commit is contained in:
@@ -69,6 +69,35 @@ TEST_CASE("jobber") {
|
||||
j.resume();
|
||||
j.wait_all();
|
||||
}
|
||||
{
|
||||
jobber j(1);
|
||||
i32 counter = 0;
|
||||
j.pause();
|
||||
for ( std::size_t i = 0; i < 10; ++i ) {
|
||||
j.async([&counter](){
|
||||
++counter;
|
||||
std::this_thread::sleep_for(std::chrono::milliseconds(15));
|
||||
});
|
||||
}
|
||||
|
||||
const auto b = time::now_ms();
|
||||
|
||||
j.wait_for(make_milliseconds(15));
|
||||
REQUIRE(time::now_ms() - b > make_milliseconds<i64>(10));
|
||||
REQUIRE(counter == 0);
|
||||
|
||||
j.wait_until(time::now_ms() + make_milliseconds<i64>(15));
|
||||
REQUIRE(time::now_ms() - b > make_milliseconds<i64>(20));
|
||||
REQUIRE(counter == 0);
|
||||
|
||||
j.active_wait_for(make_milliseconds(60));
|
||||
REQUIRE(time::now_ms() - b > make_milliseconds<i64>(70));
|
||||
REQUIRE(counter > 2);
|
||||
REQUIRE(counter < 10);
|
||||
|
||||
j.active_wait_until(time::now_s() + make_seconds<i64>(1));
|
||||
REQUIRE(counter == 10);
|
||||
}
|
||||
{
|
||||
jobber j(2);
|
||||
jobber g(2);
|
||||
|
||||
@@ -29,13 +29,13 @@ TEST_CASE("scheduler") {
|
||||
std::this_thread::sleep_for(std::chrono::milliseconds(15));
|
||||
});
|
||||
}
|
||||
s.process_all_tasks_for(make_milliseconds(-1));
|
||||
s.process_all_tasks_for(make_milliseconds(0));
|
||||
s.process_tasks_for(make_milliseconds(-1));
|
||||
s.process_tasks_for(make_milliseconds(0));
|
||||
REQUIRE(counter == 0);
|
||||
s.process_all_tasks_for(make_milliseconds(60));
|
||||
s.process_tasks_for(make_milliseconds(60));
|
||||
REQUIRE(counter > 2);
|
||||
REQUIRE(counter < 10);
|
||||
s.process_all_tasks_for(make_seconds(1));
|
||||
s.process_tasks_for(make_seconds(1));
|
||||
REQUIRE(counter == 10);
|
||||
}
|
||||
{
|
||||
@@ -47,13 +47,13 @@ TEST_CASE("scheduler") {
|
||||
std::this_thread::sleep_for(std::chrono::milliseconds(15));
|
||||
});
|
||||
}
|
||||
s.process_all_tasks_until(time::now_ms() - make_milliseconds<i64>(1));
|
||||
s.process_all_tasks_until(time::now_ms());
|
||||
s.process_tasks_until(time::now_ms() - make_milliseconds<i64>(1));
|
||||
s.process_tasks_until(time::now_ms());
|
||||
REQUIRE(counter == 0);
|
||||
s.process_all_tasks_until(time::now_ms() + make_milliseconds<i64>(60));
|
||||
s.process_tasks_until(time::now_ms() + make_milliseconds<i64>(60));
|
||||
REQUIRE(counter > 2);
|
||||
REQUIRE(counter < 10);
|
||||
s.process_all_tasks_until(time::now_s() + make_seconds<i64>(1));
|
||||
s.process_tasks_until(time::now_s() + make_seconds<i64>(1));
|
||||
REQUIRE(counter == 10);
|
||||
}
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user