while (req->status == 0 && vmaddr == 0) {
int n = poll(fds, ARRAY_CARDINALITY(fds), PKT_TIMEOUT_MS);
+ if (threadsTerminate || req->terminate) {
+ req->status = ECANCELED;
+ showError = false;
+ break;
+ }
+
if (n < 0) {
if (errno == EAGAIN || errno == EINTR)
continue;
break;
}
- if (n == 0) {
- if (threadsTerminate || req->terminate) {
- VIR_DEBUG("Terminate request seen, cancelling pcap");
- req->status = ECANCELED;
- showError = false;
- break;
- }
+ if (n == 0)
continue;
- }
if (fds[0].revents & (POLLHUP | POLLERR)) {
VIR_DEBUG("Error from FD probably dev deleted");
packet = pcap_next(handle, &header);
if (!packet) {
- /* Already handled with poll, but lets be sure */
- if (threadsTerminate || req->terminate) {
- req->status = ECANCELED;
- showError = false;
- break;
- }
-
/* Again, already handled above, but lets be sure */
if (virNetDevValidateConfig(req->binding->portdevname, NULL, req->ifindex) <= 0) {
virResetLastError();