DEBUGP(callout) ? "--debug" : "--noop-arg",
"--automatic-1",
(char*)0);
- sysassert(!"execlp failed");
+ sysassert(!"execlp ocr-resolver failed");
}
sysassert(! close(jobpipe[0]) );
sysassert(! close(donepipe[1]) );
}
if (r==0) {
- pid_t pid;
- int st;
- for (;;) {
- pid= waitpid(resolver_pid, &st, 0);
- if (pid==-1) { sysassert(errno==EINTR); continue; }
- break;
- }
- sysassert(pid==resolver_pid);
- if (WIFEXITED(st)) {
- if (WEXITSTATUS(st))
- fatal("character resolver failed with nonzero exit status %d",
- WEXITSTATUS(st));
- fclose(resolver);
- close(resolver_done);
- resolver= 0;
- } else if (WIFSIGNALED(st)) {
- fatal("character resolver died due to signal %s%s",
- strsignal(WTERMSIG(st)), WCOREDUMP(st)?" (core dumped)":"");
- } else {
- fatal("character resolver gave strange wait status %d",st);
- }
+ waitpid_check_exitstatus(resolver_pid, "character resolver");
+ fclose(resolver);
+ close(resolver_done);
+ resolver= 0;
} else {
assert(r==1);
sysassert(cb==0);