diff -r 31137432bea8 -r 83263002816f ui/winui/toolkit.h --- a/ui/winui/toolkit.h Sun Jan 28 17:05:46 2024 +0100 +++ b/ui/winui/toolkit.h Sun Jan 28 20:47:40 2024 +0100 @@ -30,6 +30,31 @@ #include "../ui/toolkit.h" +#include +#include +#include + +typedef struct UiJob { + UiObject* obj; + ui_threadfunc job_func; + void* job_data; + ui_callback finish_callback; + void* finish_data; +} UiJob; + +struct UiThreadpool +{ + std::queue queue; + std::mutex mutex; + std::condition_variable condition; + + UiThreadpool(int nthreads); + + void EnqueueJob(UiJob* job); + + UiJob* GetJob(); +}; + typedef void(*ui_eventfunc)(void*, void*); void ui_app_run_startup();