From 21993819a5af869841bed2db99addcef47c84838 Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Mon, 30 Nov 2020 15:41:47 -0500 Subject: [PATCH] Possible fix for Linux deadlock. --- osdep/LinuxEthernetTap.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/osdep/LinuxEthernetTap.cpp b/osdep/LinuxEthernetTap.cpp index 8a557c077..d75fcdf97 100644 --- a/osdep/LinuxEthernetTap.cpp +++ b/osdep/LinuxEthernetTap.cpp @@ -327,14 +327,14 @@ LinuxEthernetTap::~LinuxEthernetTap() (void)::write(_shutdownSignalPipe[1],"\0",1); // causes reader thread(s) to exit _tapq.post(std::pair(nullptr,0)); // causes processor thread to exit - ::close(_fd); - ::close(_shutdownSignalPipe[0]); - ::close(_shutdownSignalPipe[1]); - _tapReaderThread[0].join(); _tapReaderThread[1].join(); _tapProcessorThread.join(); + ::close(_fd); + ::close(_shutdownSignalPipe[0]); + ::close(_shutdownSignalPipe[1]); + for(std::vector::iterator i(_buffers.begin());i!=_buffers.end();++i) free(*i); std::vector< std::pair > dv(_tapq.drain());