From 9020baf364d4e2ac06f2d074d49bfa8ab554e4c3 Mon Sep 17 00:00:00 2001 From: Patrick Pelissier Date: Sat, 16 Dec 2017 18:48:18 +0100 Subject: [PATCH] Add option to disable worker. --- m-worker.h | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/m-worker.h b/m-worker.h index 2333b5ad..a4940d04 100644 --- a/m-worker.h +++ b/m-worker.h @@ -25,6 +25,8 @@ #ifndef __M_WORKER_H #define __M_WORKER_H +#ifndef WORKER_DISABLE + #include "m-atomic.h" #include "m-buffer.h" #include "m-mutex.h" @@ -333,4 +335,30 @@ worker_count(worker_t g) #define WORKER_PROPAGATE_LOCAL_OUTPUT(...) \ M_MAP(WORKER_PROPAGATE_SINGLE_OUTPUT, __VA_ARGS__) + +#else /* WORKER_DISABLE */ + + +/* User has defined WORKER_DISABLE to disable the use of workers. + Define empty types and empty functions +*/ + +typedef struct worker_block_s { + int x; +} worker_block_t[1]; + +typedef struct worker_s { + int x; +} worker_t[1]; + +#define worker_init(g, numWorker, extraQueue, resetFunc) do { (void) g; } while (0) +#define worker_clear(g) do { (void) g; } while (0) +#define worker_start(b) do { (void) b; } while (0) +#define worker_spawn(w, b, f, d) do { f(d); } while (0) +#define worker_sync(b) do { (void) b; } while (0) +#define worker_count(w) 1 +#define WORKER_SPAWN(w, b, i, c, o) do { c } while (0) + +#endif /* WORKER_DISABLE */ + #endif