diff options
Diffstat (limited to 'batchd.c')
-rw-r--r-- | batchd.c | 9 |
1 files changed, 6 insertions, 3 deletions
@@ -67,13 +67,16 @@ process_queue(char *queuedir, int dfd) fd = open(name, O_RDONLY); if (fd == -1) { - goto end; + goto next; } rename(name, work); pid = run_job(queuedir, fd); if (pid == -1) { rename(work, failed); - return; + free(name); + free(work); + free(failed); + break; } for (i = 0; i < MAX_JOBS; i++) { if (jobs[i].pid == -1) { @@ -84,7 +87,7 @@ process_queue(char *queuedir, int dfd) close(fd); cur_jobs++; -end: +next: free(name); free(work); free(failed); |