Add back JOB_PERSIST checks that got lost.

pull/1/head
Nicholas Marriott 2009-11-04 21:10:49 +00:00
parent 4d6091379b
commit abb728684b
1 changed files with 12 additions and 5 deletions

17
job.c
View File

@ -127,7 +127,6 @@ job_free(struct job *job)
if (job->fd != -1) if (job->fd != -1)
close(job->fd); close(job->fd);
if (job->event != NULL) if (job->event != NULL)
bufferevent_free(job->event); bufferevent_free(job->event);
@ -202,8 +201,12 @@ job_callback(unused struct bufferevent *bufev, unused short events, void *data)
close(job->fd); close(job->fd);
job->fd = -1; job->fd = -1;
if (job->pid == -1 && job->callbackfn != NULL) if (job->pid == -1) {
job->callbackfn(job); if (job->callbackfn != NULL)
job->callbackfn(job);
if ((!job->flags & JOB_PERSIST))
job_free(job);
}
} }
/* Job died (waitpid() returned its pid). */ /* Job died (waitpid() returned its pid). */
@ -213,8 +216,12 @@ job_died(struct job *job, int status)
job->status = status; job->status = status;
job->pid = -1; job->pid = -1;
if (job->fd == -1 && job->callbackfn != NULL) if (job->fd == -1) {
job->callbackfn(job); if (job->callbackfn != NULL)
job->callbackfn(job);
if ((!job->flags & JOB_PERSIST))
job_free(job);
}
} }
/* Kill a job. */ /* Kill a job. */