+ /// Flush the function queue. Destroys all stored functions without
+ /// executing them. Returns number of removed functions.
+ std::size_t clear() {
+ std::queue<Func> funcs;
+ std::priority_queue<ScheduledFunc> scheduled_funcs;
+
+ {
+ std::lock_guard<std::mutex> lock(lock_);
+ funcs_.swap(funcs);
+ scheduledFuncs_.swap(scheduled_funcs);
+ }
+
+ return funcs.size() + scheduled_funcs.size();
+ }
+