7 std::vector<std::function<void()>> commands;
9 std::condition_variable cv;
12 void Submit(std::function<
void()> cmd) {
13 std::lock_guard<std::mutex> lock(mutex);
14 commands.push_back(std::move(cmd));
19 std::lock_guard<std::mutex> lock(mutex);
20 for (
auto& cmd : commands) cmd();
27 std::unique_lock<std::mutex> lock(mutex);
28 cv.wait(lock, [
this]() {
29 return commands.empty();