diff options
author | 2019-02-15 20:49:54 +0100 | |
---|---|---|
committer | 2019-04-02 09:58:49 +0200 | |
commit | 901a38c28bf3fe7cc3e58e3fad36190fbae585be (patch) | |
tree | fe2f0ed7fd1153a9a5a9006628f8864877763724 /src/jobs.h | |
parent | 50deefa0f08b88b99748abd57560222744d2f8db (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.h | 3 |
1 files changed, 1 insertions, 2 deletions
@@ -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)()); |