diff options
author | Nicholas Marriott <nicm@openbsd.org> | 2009-11-04 21:10:49 +0000 |
---|---|---|
committer | Nicholas Marriott <nicm@openbsd.org> | 2009-11-04 21:10:49 +0000 |
commit | abb728684b00c82460ea439c8df16d3f1018c826 (patch) | |
tree | 2e24c186e30ddf359838de9d1e820816d58594ea | |
parent | 4d6091379b4486b624070492d45ad390e7442382 (diff) | |
download | rtmux-abb728684b00c82460ea439c8df16d3f1018c826.tar.gz rtmux-abb728684b00c82460ea439c8df16d3f1018c826.tar.bz2 rtmux-abb728684b00c82460ea439c8df16d3f1018c826.zip |
Add back JOB_PERSIST checks that got lost.
-rw-r--r-- | job.c | 17 |
1 files changed, 12 insertions, 5 deletions
@@ -127,7 +127,6 @@ job_free(struct job *job) if (job->fd != -1) close(job->fd); - if (job->event != NULL) bufferevent_free(job->event); @@ -202,8 +201,12 @@ job_callback(unused struct bufferevent *bufev, unused short events, void *data) close(job->fd); job->fd = -1; - if (job->pid == -1 && job->callbackfn != NULL) - job->callbackfn(job); + if (job->pid == -1) { + if (job->callbackfn != NULL) + job->callbackfn(job); + if ((!job->flags & JOB_PERSIST)) + job_free(job); + } } /* Job died (waitpid() returned its pid). */ @@ -213,8 +216,12 @@ job_died(struct job *job, int status) job->status = status; job->pid = -1; - if (job->fd == -1 && job->callbackfn != NULL) - job->callbackfn(job); + if (job->fd == -1) { + if (job->callbackfn != NULL) + job->callbackfn(job); + if ((!job->flags & JOB_PERSIST)) + job_free(job); + } } /* Kill a job. */ |