aboutsummaryrefslogtreecommitdiffstats
path: root/src/jobs.h
diff options
context:
space:
mode:
authorJosé Bollo <jose.bollo@iot.bzh>2017-03-28 17:46:32 +0200
committerJosé Bollo <jose.bollo@iot.bzh>2017-03-28 17:46:32 +0200
commit162436f4ffbbf63d867735f7de5b78dcd684f890 (patch)
tree3c7a1f4b37829da57b1b9be1ecf027d753101a89 /src/jobs.h
parent48827b7b9862ab5961f938f38a8667e15421a50c (diff)
Refactor job to allow synchronous calls
The family of methods "jobs_invoke" make synchronous job activation. It waits for the completion of the job while still dispatching it internally and providing the calling thread for processing any job queued. Change-Id: Id36a30789cc51245a7bbfca42f0122cf4ea623b2 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
Diffstat (limited to 'src/jobs.h')
-rw-r--r--src/jobs.h29
1 files changed, 28 insertions, 1 deletions
diff --git a/src/jobs.h b/src/jobs.h
index 95565b86..cf433892 100644
--- a/src/jobs.h
+++ b/src/jobs.h
@@ -17,6 +17,11 @@
#pragma once
+extern int jobs_queue0(
+ void *group,
+ int timeout,
+ void (*callback)(int signum));
+
extern int jobs_queue(
void *group,
int timeout,
@@ -38,10 +43,32 @@ 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(
+ int timeout,
+ void (*callback)(int signum, void* arg1, void *arg2),
+ void *arg1,
+ void *arg2);
+
+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_add_event_loop(void *key, int timeout, void (*evloop)(int, void*), void *closure);
extern int jobs_init(int allowed_count, int start_count, int waiter_count);
extern int jobs_add_me();
-extern void jobs_terminate(int wait);
+extern void jobs_terminate();