char buffer[32769];
errno = 0;
long nread = read(job->fd, buffer, sizeof(buffer)-1);
+ telem_send("PIPE_READ(fd : %d, ret: %ld)\n", job->fd, nread);
if (nread <= 0)
{
job->readfn = NULL;
job = job->next;
if (!job || !events) return;
telem_send("JOB(fd: %d, events: 0x%x)\n", fd, events);
- if (job->readfn && (events & POLLIN))
+ if (job->readfn && (events & (POLLIN|POLLHUP)))
{
telem_send("JOB_READ(fd: %d)\n", job->fd);
job->readfn(job);
telem_send("JOB_WRITE(fd: %d)\n", job->fd);
job->writefn(job);
}
- if ((events & (POLLHUP|POLLERR) && !job->readfn) || (!job->readfn && !job->writefn))
+ if ((events & POLLERR) || (!job->readfn && !job->writefn))
{
telem_send("JOB_FINISH(fd: %d)\n", job->fd);
job_finish(job);