From cc6280af7eca660c916dc652066216acd474979d Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Wed, 23 Jan 2019 21:47:38 +0300 Subject: Add testscript sleep builtin --- build2/scheduler.cxx | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'build2/scheduler.cxx') diff --git a/build2/scheduler.cxx b/build2/scheduler.cxx index 2438d0b..053532e 100644 --- a/build2/scheduler.cxx +++ b/build2/scheduler.cxx @@ -11,6 +11,14 @@ # endif #endif +#ifndef _WIN32 +# include // this_thread::sleep_for() +#else +# include + +# include +#endif + #include #include // std::terminate() @@ -175,6 +183,24 @@ namespace build2 throw_generic_error (ECANCELED); } + void scheduler:: + sleep (const duration& d) + { + deactivate (); + + // MINGW GCC 4.9 doesn't implement this_thread so use Win32 Sleep(). + // +#ifndef _WIN32 + this_thread::sleep_for (d); +#else + using namespace chrono; + + Sleep (static_cast (duration_cast (d).count ())); +#endif + + activate (); + } + size_t scheduler:: suspend (size_t start_count, const atomic_count& task_count) { -- cgit v1.1