From 29e92840c5eb6e56e047d1b0d2b80db66e9eaae5 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Wed, 8 Feb 2017 15:27:06 +0200 Subject: Make scheduler::async() indicate whether the task executed synchronously --- build2/scheduler | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'build2/scheduler') diff --git a/build2/scheduler b/build2/scheduler index 16cc217..7447021 100644 --- a/build2/scheduler +++ b/build2/scheduler @@ -67,17 +67,20 @@ namespace build2 // subtlety can become important when passing shared locks; you would // only want it to be copied if the task is queued). // + // Return true if the task was queued and false if it was executed + // synchronously. + // // If the scheduler is shutdown, throw system_error(ECANCELED). // template - void + bool async (size_t start_count, atomic_count& task_count, F&&, A&&...); template - void + bool async (atomic_count& task_count, F&& f, A&&... a) { - async (0, task_count, forward (f), forward (a)...); + return async (0, task_count, forward (f), forward (a)...); } // Wait until the task count reaches the start count. If the scheduler is -- cgit v1.1