summaryrefslogtreecommitdiffstats
path: root/src/jobs.h
diff options
context:
space:
mode:
authorJosé Bollo <jose.bollo@iot.bzh>2017-04-03 17:22:39 +0200
committerJosé Bollo <jose.bollo@iot.bzh>2017-04-03 17:22:39 +0200
commite3a5ff981c25dcb609fe8cc5396a50b81138ee63 (patch)
tree7dc29eb4b5ea7d87826eee57f4fe92cf4de479de /src/jobs.h
parent7087ad1b81b55fb2c1c14e7d9cbb49c0bf75e28e (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.h29
1 files changed, 7 insertions, 22 deletions
diff --git a/src/jobs.h b/src/jobs.h
index 6eb0a83d..f508e3c0 100644
--- a/src/jobs.h
+++ b/src/jobs.h
@@ -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)());