Browse Source

Possible fix for Linux deadlock.

pull/2/head
Adam Ierymenko 5 years ago
parent
commit
21993819a5
No known key found for this signature in database
GPG Key ID: C8877CF2D7A5D7F3
  1. 8
      osdep/LinuxEthernetTap.cpp

8
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<void *,int>(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<void *>::iterator i(_buffers.begin());i!=_buffers.end();++i)
free(*i);
std::vector< std::pair<void *,int> > dv(_tapq.drain());

Loading…
Cancel
Save