@ -99,8 +99,7 @@ public:
numThreads ( 0 )
numThreads ( 0 )
{
{
}
}
/** Precondition: worker threads have all stopped
/** Precondition: worker threads have all stopped (they have been joined).
* ( call WaitExit )
*/
*/
~ WorkQueue ( )
~ WorkQueue ( )
{
{
@ -141,13 +140,6 @@ public:
running = false ;
running = false ;
cond . notify_all ( ) ;
cond . notify_all ( ) ;
}
}
/** Wait for worker threads to exit */
void WaitExit ( )
{
std : : unique_lock < std : : mutex > lock ( cs ) ;
while ( numThreads > 0 )
cond . wait ( lock ) ;
}
} ;
} ;
struct HTTPPathHandler
struct HTTPPathHandler
@ -486,7 +478,6 @@ void StopHTTPServer()
LogPrint ( BCLog : : HTTP , " Stopping HTTP server \n " ) ;
LogPrint ( BCLog : : HTTP , " Stopping HTTP server \n " ) ;
if ( workQueue ) {
if ( workQueue ) {
LogPrint ( BCLog : : HTTP , " Waiting for HTTP worker threads to exit \n " ) ;
LogPrint ( BCLog : : HTTP , " Waiting for HTTP worker threads to exit \n " ) ;
workQueue - > WaitExit ( ) ;
for ( auto & thread : g_thread_http_workers ) {
for ( auto & thread : g_thread_http_workers ) {
thread . join ( ) ;
thread . join ( ) ;
}
}