From: Vadim Zeitlin Date: Wed, 24 Sep 2008 13:47:41 +0000 (+0000) Subject: return false, not true, from wxSingleInstanceChecker::IsAnotherRunning() if an error... X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/d86901f9f44e856204902734a5cf225a21113925 return false, not true, from wxSingleInstanceChecker::IsAnotherRunning() if an error occurred while opening or reading the lock file (#9986) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55833 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/unix/snglinst.cpp b/src/unix/snglinst.cpp index 26bab35d8b..1ce464edfa 100644 --- a/src/unix/snglinst.cpp +++ b/src/unix/snglinst.cpp @@ -375,9 +375,19 @@ bool wxSingleInstanceChecker::IsAnotherRunning() const { wxCHECK_MSG( m_impl, false, _T("must call Create() first") ); + const pid_t lockerPid = m_impl->GetLockerPID(); + + if ( !lockerPid ) + { + // we failed to open the lock file, return false as we're definitely + // not sure that another our process is running and so it's better not + // to prevent this one from starting up + return false; + } + // if another instance is running, it must own the lock file - otherwise // we have it and the locker PID is ours one - return m_impl->GetLockerPID() != getpid(); + return lockerPid != getpid(); } wxSingleInstanceChecker::~wxSingleInstanceChecker()