ui/winui/toolkit.h

changeset 5
83263002816f
parent 0
2483f517c562
--- 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 <queue>
+#include <mutex>
+#include <condition_variable>
+
+typedef struct UiJob {
+    UiObject* obj;
+    ui_threadfunc job_func;
+    void* job_data;
+    ui_callback   finish_callback;
+    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