diff options
author | José Bollo <jose.bollo@iot.bzh> | 2017-04-03 17:22:39 +0200 |
---|---|---|
committer | José Bollo <jose.bollo@iot.bzh> | 2017-04-03 17:22:39 +0200 |
commit | e3a5ff981c25dcb609fe8cc5396a50b81138ee63 (patch) | |
tree | 7dc29eb4b5ea7d87826eee57f4fe92cf4de479de /src/jobs.h | |
parent | 7087ad1b81b55fb2c1c14e7d9cbb49c0bf75e28e (diff) |
Rework the jobs
Enforce starting jobs with acquiring the
calling thread.
Removes invoke methods in favour of
enter/leave synchronisation.
Change-Id: I7086f7f53b919b43ddafd2355316abc0d3516f49
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
Diffstat (limited to 'src/jobs.h')
-rw-r--r-- | src/jobs.h | 29 |
1 files changed, 7 insertions, 22 deletions
@@ -18,6 +18,7 @@ #pragma once struct sd_event; +struct jobloop; extern int jobs_queue0( void *group, @@ -45,33 +46,17 @@ extern int jobs_queue3( void *arg2, void *arg3); -extern int jobs_invoke0( - int timeout, - void (*callback)(int signum)); - -extern int jobs_invoke( - int timeout, - void (*callback)(int signum, void* arg), - void *arg); - -extern int jobs_invoke2( +extern int jobs_enter( + void *group, int timeout, - void (*callback)(int signum, void* arg1, void *arg2), - void *arg1, - void *arg2); + void (*callback)(int signum, void *closure, struct jobloop *jobloop), + void *closure); -extern int jobs_invoke3( - int timeout, - void (*callback)(int signum, void* arg1, void *arg2, void *arg3), - void *arg1, - void *arg2, - void *arg3); +extern int jobs_leave(struct jobloop *jobloop); extern struct sd_event *jobs_get_sd_event(); -extern int jobs_init(int allowed_count, int start_count, int waiter_count); -extern int jobs_add_me(); extern void jobs_terminate(); -extern int jobs_enter(int allowed_count, int start_count, int waiter_count, void (*start)()); +extern int jobs_start(int allowed_count, int start_count, int waiter_count, void (*start)()); |