ui/winui/toolkit.h

branch
newapi
changeset 235
9c79f00fbf36
parent 234
9036b346cd66
--- a/ui/winui/toolkit.h	Sun Jan 28 19:33:56 2024 +0100
+++ b/ui/winui/toolkit.h	Sun Jan 28 20:46:49 2024 +0100
@@ -30,6 +30,10 @@
 
 #include "../ui/toolkit.h"
 
+#include <queue>
+#include <mutex>
+#include <condition_variable>
+
 typedef struct UiJob {
     UiObject* obj;
     ui_threadfunc job_func;
@@ -38,6 +42,19 @@
     void* finish_data;
 } UiJob;
 
+struct UiThreadpool
+{
+	std::queue<UiJob*> 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();

mercurial