When yaz_poll returns error (-1) and errno is not EINTR the code
previously assumed seshigh IOCHAN (client_link) and called cs_close..
In the mother process, however, the IOCHAN data is not this type.
Code now prints a warning and resumes processing and does not use
iochan_getdata.
}
else
{
- /* Destroy the first member in the chain, and try again */
- association *assoc = (association *)iochan_getdata(*iochans);
- COMSTACK conn = assoc->client_link;
-
- cs_close(conn);
- destroy_association(assoc);
- iochan_destroy(*iochans);
- yaz_log(log_level, "error select, destroying iochan %p",
- *iochans);
+ yaz_log(YLOG_WARN|YLOG_ERRNO, "yaz_poll");
+ xfree(fds);
+ continue;
}
}
now = time(0);