summaryrefslogtreecommitdiffstats
path: root/04_exercise/threadpool.h
diff options
context:
space:
mode:
authorStefan Zabka <zabkaste@hu-berlin.de>2020-06-11 01:00:32 +0200
committerStefan Zabka <zabkaste@hu-berlin.de>2020-06-11 01:00:32 +0200
commitfad28509e7463082a508b761c797773538df7d27 (patch)
treec393af67d54e12f43c182fe776ca20f6a0333d78 /04_exercise/threadpool.h
parent1bec4c4e1e16aa12965d124f83590ba007b88719 (diff)
downloadbetriebssysteme-fad28509e7463082a508b761c797773538df7d27.tar.gz
betriebssysteme-fad28509e7463082a508b761c797773538df7d27.zip
First ideas
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.