1#include "../include/pending_task_queue.hpp"
3namespace dispatch_queue {
7bool pending_task_queue::empty()
const {
8 return background_tasks.empty();
11size_t pending_task_queue::size()
const {
12 return background_tasks.size();
15void pending_task_queue::clear() {
16 background_tasks.clear();
19void pending_task_queue::push(pending_task&& task,
bool run_on_main_loop) {
20 if (run_on_main_loop) {
21 main_loop_tasks.push_back(std::move(task));
24 background_tasks.push_back(std::move(task));
28bool pending_task_queue::try_pop(pending_task& task) {
29 if (!background_tasks.empty()) {
30 task = std::move(background_tasks.front());
31 background_tasks.pop_front();
40std::deque<pending_task> pending_task_queue::pop_main_loop_tasks() {
41 std::deque<pending_task> result;
42 main_loop_tasks.swap(result);