aboutsummaryrefslogtreecommitdiffstats
path: root/src/jobs.h
diff options
context:
space:
mode:
authorJosé Bollo <jose.bollo@iot.bzh>2019-02-15 20:49:54 +0100
committerJosé Bollo <jose.bollo@iot.bzh>2019-04-02 09:58:49 +0200
commit901a38c28bf3fe7cc3e58e3fad36190fbae585be (patch)
treefe2f0ed7fd1153a9a5a9006628f8864877763724 /src/jobs.h
parent50deefa0f08b88b99748abd57560222744d2f8db (diff)
jobs: Refactor exiting jobs
The new termination function can allow the restart because it doesn't abort the waiting jobs. So after calling 'jobs_exit', all threads stop. The function 'job_start' returns. The threads that are in blocking state, i.e. in a call to 'jobs_enter' or 'jobs_call' are stopped. An error status -1 with errno=EINTR is returned in that case. But before returning, that function calls the exit handler if any. Change-Id: I85a4b1976b09b18804eb681af940531ae5ace6c3 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
Diffstat (limited to 'src/jobs.h')
-rw-r--r--src/jobs.h3
1 files changed, 1 insertions, 2 deletions
diff --git a/src/jobs.h b/src/jobs.h
index a99c9622..4b0fa8bb 100644
--- a/src/jobs.h
+++ b/src/jobs.h
@@ -39,8 +39,6 @@ extern int jobs_call(
void (*callback)(int, void*),
void *arg);
-extern void jobs_terminate();
-
extern int jobs_start(
int allowed_count,
int start_count,
@@ -50,3 +48,4 @@ extern int jobs_start(
extern void jobs_acquire_event_manager();
+extern void jobs_exit(void (*handler)());