rapid, polite shutdown

pull/1/head
Tom Early 6 years ago
parent e5f734266e
commit f6637869be

@ -85,8 +85,9 @@ void CDmridDir::Thread(CDmridDir *This)
{
while (This->keep_running)
{
// Wait 30 seconds
CTimePoint::TaskSleepFor(DMRIDDB_REFRESH_RATE * 60000);
// Wait DMRIDDB_REFRESH_RATE minutes
for (int i=0; i<30*DMRIDDB_REFRESH_RATE && This->keep_running; i++)
CTimePoint::TaskSleepFor(2000);
// have lists files changed ?
if ( This->NeedReload() )

@ -51,6 +51,7 @@ CGateKeeper::~CGateKeeper()
{
m_pThread->join();
delete m_pThread;
m_pThread = NULL;
}
}
@ -180,7 +181,8 @@ void CGateKeeper::Thread(CGateKeeper *This)
while (This->keep_running)
{
// Wait 30 seconds
CTimePoint::TaskSleepFor(30000);
for (int i=0; i<15 && This->keep_running; i++)
CTimePoint::TaskSleepFor(2000);
// have lists files changed ?
if ( This->m_NodeWhiteList.NeedReload() )

@ -118,7 +118,7 @@ void CProtocol::Thread(CProtocol *This)
void CProtocol::Close(void)
{
keep_running = true;
keep_running = false;
if ( m_pThread != NULL )
{
m_pThread->join();

@ -405,7 +405,8 @@ void CReflector::XmlReportThread(CReflector *This)
#endif
// and wait a bit
CTimePoint::TaskSleepFor(XML_UPDATE_PERIOD * 1000);
for (int i=0; i< XML_UPDATE_PERIOD && This->keep_running; i++)
CTimePoint::TaskSleepFor(1000);
}
}

@ -84,8 +84,9 @@ void CYsfNodeDir::Thread(CYsfNodeDir *This)
{
while (This->keep_running)
{
// Wait 30 seconds
CTimePoint::TaskSleepFor(YSFNODEDB_REFRESH_RATE * 60000);
// Wait YSFNODEDB_REFRESH_RATE minutes
for (int i=0; i<30*YSFNODEDB_REFRESH_RATE && This->keep_running; i++)
CTimePoint::TaskSleepFor(2000);
// have lists files changed ?
if ( This->NeedReload() )

Loading…
Cancel
Save

Powered by TurnKey Linux.