summaryrefslogtreecommitdiffstats
path: root/04_exercise/threadpool.h
diff options
context:
space:
mode:
Diffstat (limited to '04_exercise/threadpool.h')
-rw-r--r--04_exercise/threadpool.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/04_exercise/threadpool.h b/04_exercise/threadpool.h
index 6b758cd..1b5d64d 100644
--- a/04_exercise/threadpool.h
+++ b/04_exercise/threadpool.h
@@ -1,20 +1,26 @@
#ifndef THREADPOOL_H_INCLUDED
#define THREADPOOL_H_INCLUDED
+#include <stdatomic.h>
#include <stddef.h>
+
+
/**@brief Funktionszeiger auf eine asynchron auszuführende Funktion.
- *
+ *
* Der Parameter kann zur Übergabe von Argumenten und den Rückgabewerten
* der Funktion genutzt werden.
*/
typedef void (*ThreadTask_f)(void*);
+typedef atomic_char FutureStatus;
+enum FurutureStatusEnum { FUT_WAITING = 0, FUT_IN_PROGRESS=1, FUT_DONE = 2};
/**@brief Handle zum zukünftigen Rückgabewert eines asynchronen Funktionsrufes.
*/
typedef struct Future {
ThreadTask_f fn; ///<@brief Zeiger auf die auszuführende Funktion.
/* TODO: benötigte Attribute hinzufügen */
+ FutureStatus status;
} Future;
/**@brief Initialisiert den globalen Thread-Pool.