From: Michael D. Lowis Date: Wed, 30 Oct 2019 13:31:05 +0000 (-0400) Subject: added telemetry viewer script changed job.c to only output when poll returns non... X-Git-Url: https://git.mdlowis.com/?a=commitdiff_plain;h=8beecdb132e2502aa285f52f23675da16d652d9b;p=projs%2Ftide.git added telemetry viewer script changed job.c to only output when poll returns non zero --- diff --git a/bin/view-telem b/bin/view-telem new file mode 100755 index 0000000..2b406a8 --- /dev/null +++ b/bin/view-telem @@ -0,0 +1,4 @@ +#!/bin/sh +while [[ 1 ]]; do + cat ~/tide-telem +done \ No newline at end of file diff --git a/src/lib/job.c b/src/lib/job.c index 89fa953..a2094d2 100644 --- a/src/lib/job.c +++ b/src/lib/job.c @@ -167,18 +167,20 @@ bool job_poll(int ms) if (job->writefn) JobFds[njobs].events |= POLLOUT; if (JobFds[njobs].events) njobs++; } + /* Poll until a job is ready, call the functions based on events */ long ret = poll(JobFds, njobs, ms); - telem_send("POLL(njobs: %d, ms: %d, ret: %d)\n", njobs, ms, ret); - if (ret < 0) + if (ret != 0) { - perror("poll() failed: "); - exit(1); + telem_send("POLL(njobs: %d, ms: %d, ret: %d)\n", njobs, ms, ret); } + + /* process all jobs with events reported */ for (int i = 0; i < njobs; i++) { job_process(JobFds[i].fd, JobFds[i].revents); } + /* reap zombie processes */ for (int status; waitpid(-1, &status, WNOHANG) > 0;); return (ret > 0);