version 1.53, 2009/10/11 07:20:16 |
version 1.54, 2009/10/11 08:58:05 |
|
|
server_check_jobs(void) |
server_check_jobs(void) |
{ |
{ |
struct job *job; |
struct job *job; |
|
|
|
restart: |
SLIST_FOREACH(job, &all_jobs, lentry) { |
SLIST_FOREACH(job, &all_jobs, lentry) { |
if (job->flags & JOB_DONE || job->fd != -1 || job->pid != -1) |
if (job->flags & JOB_DONE || job->fd != -1 || job->pid != -1) |
continue; |
continue; |
if (job->callbackfn != NULL) |
|
job->callbackfn(job); |
|
job->flags |= JOB_DONE; |
job->flags |= JOB_DONE; |
|
|
|
if (job->callbackfn != NULL) { |
|
job->callbackfn(job); |
|
goto restart; /* could be freed by callback */ |
|
} |
} |
} |
} |
} |
|
|