diff options
author | José Bollo <jose.bollo@iot.bzh> | 2017-03-28 17:46:32 +0200 |
---|---|---|
committer | José Bollo <jose.bollo@iot.bzh> | 2017-03-28 17:46:32 +0200 |
commit | 162436f4ffbbf63d867735f7de5b78dcd684f890 (patch) | |
tree | 3c7a1f4b37829da57b1b9be1ecf027d753101a89 /src/jobs.h | |
parent | 48827b7b9862ab5961f938f38a8667e15421a50c (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.h | 29 |
1 files changed, 28 insertions, 1 deletions
@@ -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(); |