POSIX: PCAP: Cancel after pcap_breakloop() to EINTR out of poll()

This is necessary as pcap_breakloop() does not actually wake the
thread from blocking operations, such as poll.
v0.3.0-dev
Paul Hollinsky 2021-05-27 22:47:44 -04:00
parent 04e7bfd1af
commit c12330eec4
1 changed files with 1 additions and 0 deletions

View File

@ -234,6 +234,7 @@ bool PCAP::close() {
closing = true; // Signal the threads that we are closing closing = true; // Signal the threads that we are closing
pcap_breakloop(interface.fp); pcap_breakloop(interface.fp);
pthread_cancel(readThread.native_handle());
readThread.join(); readThread.join();
writeThread.join(); writeThread.join();
closing = false; closing = false;