diff options
author | Stefan Zabka <zabkaste@hu-berlin.de> | 2020-06-11 23:24:02 +0200 |
---|---|---|
committer | Stefan Zabka <zabkaste@hu-berlin.de> | 2020-06-11 23:24:02 +0200 |
commit | b9771b85d4f543af78465985e6350c0ca57f4c70 (patch) | |
tree | 012838e8e3a66d17b7220efdefd3ae2a17fed217 /04_exercise/main.c | |
parent | 7ecbcce58aa7a33915a150ad3f48924c1158779d (diff) | |
download | betriebssysteme-b9771b85d4f543af78465985e6350c0ca57f4c70.tar.gz betriebssysteme-b9771b85d4f543af78465985e6350c0ca57f4c70.zip |
Broken Mess
Diffstat (limited to '04_exercise/main.c')
-rw-r--r-- | 04_exercise/main.c | 31 |
1 files changed, 16 insertions, 15 deletions
diff --git a/04_exercise/main.c b/04_exercise/main.c index 18fb21e..e73dd98 100644 --- a/04_exercise/main.c +++ b/04_exercise/main.c @@ -5,22 +5,23 @@ static TASK(long, fib, long) -long fib(long n) { - if (n <= 1) - return n; - - fib_fut *a = fibAsync((fib_fut[]) { fibFuture(n - 1) }); - fib_fut *b = fibAsync((fib_fut[]) { fibFuture(n - 2) }); - - return fibAwait(a) + fibAwait(b); + long fib(long n) { + if (n <= 1) + return n; + + fib_fut *a = fibAsync((fib_fut[]){fibFuture(n - 1)}); + fib_fut *b = fibAsync((fib_fut[]){fibFuture(n - 2)}); + + return fibAwait(a) + fibAwait(b); } int main() { - if (tpInit(8) != 0) - perror("Thread Pool initialization failed"), exit(-1); - atexit(&tpRelease); - for (long i = 0; i <= 20; ++i) - printf("fib(%2li) = %li\n", i, fib(i)); - - return 0; + setvbuf(stdout, NULL, _IONBF, 0); + if (tpInit(1) != 0) + perror("Thread Pool initialization failed"), exit(-1); + atexit(&tpRelease); + for (long i = 0; i <= 20; ++i) + printf("fib(%2li) = %li\n", i, fib(i)); + + return 0; } |