23#include <condition_variable>
44 std::function<void()>
func;
58extern void sync(std::function<
void()> func);
66extern void async(std::function<
void()> func);
68extern size_t delay(
long milliseconds, std::function<
void()> func);
84 static void sync(std::function<
void()> func);
90 static void async(std::function<
void()> func);
99 static size_t delay(
long milliseconds, std::function<
void()> func);
125 inline static std::mutex m_sync_mutex;
126 inline static std::vector<std::function<void()>> m_sync_functions;
127 inline static uint64_t m_sync_budget = 0;
129 inline static std::mutex m_async_mutex;
130 inline static std::vector<std::function<void()>> m_async_tasks;
131 inline static std::condition_variable m_async_cv;
132 inline static int m_async_running = 0;
134 inline static std::mutex m_delay_mutex;
135 inline static std::vector<DelayOperation> m_delay_tasks;
136 inline static std::set<size_t> m_delay_cancel_set;
137 inline static std::set<size_t> m_delay_pending;
138 inline static size_t m_delay_index = 0;
140 inline static std::atomic<bool> task_loop_active {
true };
141 inline static bool task_loop_running =
false;
143 static void* task_loop(
void* a);
144 static void std_task_loop();
145 static void* decode_loop(
void* a);
147 static void start_task_loop();
static void cancelDelay(size_t iter)
static size_t delay(long milliseconds, std::function< void()> func)
static void async(std::function< void()> func)
static void performSyncTasks()
static void asyncDecode(std::function< void()> func)
static void sync(std::function< void()> func)
static void setSyncTaskBudget(uint64_t microseconds)
Definition actions.hpp:25
void async(std::function< void()> func)
void cancelDelay(size_t iter)
void sync(std::function< void()> func)
size_t delay(long milliseconds, std::function< void()> func)
std::vector< DelayOperation >::iterator DelayOperationIterator
Definition thread.hpp:47
std::function< void()> func
Definition thread.hpp:44
long delayMilliseconds
Definition thread.hpp:42
int64_t startPoint
Definition thread.hpp:40
size_t index
Definition thread.hpp:43