// see if any threads are still running - just calling interrupt without check would cause assert in debug mode\r
if(m_connections.wait(1)==false)\r
{\r
+ LogFile::instance()->WriteLog(LogFile::LOGLEVEL_DEBUG,"NNTPListener::run interrupting connection threads and waiting 60 seconds for exit.");\r
try\r
{\r
m_connections.interrupt();\r
}\r
catch(...)\r
{\r
+ LogFile::instance()->WriteLog(LogFile::LOGLEVEL_DEBUG,"NNTPListener::run caught unhandled exception.");\r
}\r
- m_connections.wait();\r
+ if(m_connections.wait(60)==false)\r
+ {\r
+ LogFile::instance()->WriteLog(LogFile::LOGLEVEL_DEBUG,"NNTPListener::run connection threads did not exit after 60 seconds.");\r
+ }\r
+ }\r
+\r
+ for(listeni=m_listensockets.begin(); listeni!=m_listensockets.end(); listeni++)\r
+ {\r
+ #ifdef _WIN32\r
+ closesocket((*listeni));\r
+ #else\r
+ close((*listeni));\r
+ #endif\r
}\r
+ m_listensockets.clear();\r
\r
}\r
\r