Catch exceptions thrown by is_regular_file (#1179)

This commit is contained in:
Pavel Krymets 2018-08-09 09:45:28 -07:00 committed by GitHub
parent d6f410bf42
commit dd429e9597
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 12 additions and 4 deletions

View File

@ -26,6 +26,8 @@ PollingAppOfflineApplication::CheckAppOffline()
{ {
SRWExclusiveLock lock(m_statusLock); SRWExclusiveLock lock(m_statusLock);
if (ulCurrentTime - m_ulLastCheckTime > c_appOfflineRefreshIntervalMS) if (ulCurrentTime - m_ulLastCheckTime > c_appOfflineRefreshIntervalMS)
{
try
{ {
m_fAppOfflineFound = is_regular_file(m_appOfflineLocation); m_fAppOfflineFound = is_regular_file(m_appOfflineLocation);
if(m_fAppOfflineFound) if(m_fAppOfflineFound)
@ -34,6 +36,12 @@ PollingAppOfflineApplication::CheckAppOffline()
} }
m_ulLastCheckTime = ulCurrentTime; m_ulLastCheckTime = ulCurrentTime;
} }
catch (...)
{
// is_regular_file might throw in very rare cases
OBSERVE_CAUGHT_EXCEPTION();
}
}
} }
if (m_fAppOfflineFound != (m_mode == StopWhenRemoved)) if (m_fAppOfflineFound != (m_mode == StopWhenRemoved))