diff options
author | Moonchild <moonchild@palemoon.org> | 2022-04-08 21:54:05 +0200 |
---|---|---|
committer | Moonchild <moonchild@palemoon.org> | 2022-04-08 21:54:05 +0200 |
commit | 52bcfa36bf35ca6af5a914e266585180f116007f (patch) | |
tree | a834ee724d3644d2a362ef34f8cb03c6dc750542 | |
parent | 6d9b8e43bf2fb00fc3ac0077c31f2326107e6279 (diff) | |
download | uxp-52bcfa36bf35ca6af5a914e266585180f116007f.tar.gz |
[XPCOM] xpcom/threads misc cleanup
-rw-r--r-- | xpcom/threads/LazyIdleThread.cpp | 13 | ||||
-rw-r--r-- | xpcom/threads/LazyIdleThread.h | 3 | ||||
-rw-r--r-- | xpcom/threads/nsProcessCommon.cpp | 19 |
3 files changed, 24 insertions, 11 deletions
diff --git a/xpcom/threads/LazyIdleThread.cpp b/xpcom/threads/LazyIdleThread.cpp index d74f515e87..c5c7a5f192 100644 --- a/xpcom/threads/LazyIdleThread.cpp +++ b/xpcom/threads/LazyIdleThread.cpp @@ -137,10 +137,15 @@ LazyIdleThread::EnsureThread() return NS_OK; } - MOZ_ASSERT(!mPendingEventCount, "Shouldn't have events yet!"); - MOZ_ASSERT(!mIdleNotificationCount, "Shouldn't have idle events yet!"); - MOZ_ASSERT(!mIdleTimer, "Should have killed this long ago!"); - MOZ_ASSERT(!mThreadIsShuttingDown, "Should have cleared that!"); +#ifdef DEBUG + { // Lock scope + MutexAutoLock lock(mMutex); + MOZ_ASSERT(!mPendingEventCount, "Shouldn't have events yet!"); + MOZ_ASSERT(!mIdleNotificationCount, "Shouldn't have idle events yet!"); + MOZ_ASSERT(!mIdleTimer, "Should have killed this long ago!"); + MOZ_ASSERT(!mThreadIsShuttingDown, "Should have cleared that!"); + } +#endif nsresult rv; diff --git a/xpcom/threads/LazyIdleThread.h b/xpcom/threads/LazyIdleThread.h index 460971c7a8..9d437171a7 100644 --- a/xpcom/threads/LazyIdleThread.h +++ b/xpcom/threads/LazyIdleThread.h @@ -152,9 +152,10 @@ private: nsCOMPtr<nsIThread> mThread; /** - * Protected by mMutex. Created when mThread has no pending events and fired + * Created when mThread has no pending events and fired * at mOwningThread. Any thread that dispatches to mThread will take ownership * of the timer and fire a separate cancel event to the owning thread. + * Only accessed from the owning thread. */ nsCOMPtr<nsITimer> mIdleTimer; diff --git a/xpcom/threads/nsProcessCommon.cpp b/xpcom/threads/nsProcessCommon.cpp index e815ec9ea4..033c358d8d 100644 --- a/xpcom/threads/nsProcessCommon.cpp +++ b/xpcom/threads/nsProcessCommon.cpp @@ -280,10 +280,13 @@ nsProcess::ProcessComplete() } const char* topic; - if (mExitValue < 0) { - topic = "process-failed"; - } else { - topic = "process-finished"; + { // Lock scope + MutextAutoLock lock(mLock); + if (mExitValue < 0) { + topic = "process-failed"; + } else { + topic = "process-finished"; + } } mPid = -1; @@ -412,8 +415,11 @@ nsProcess::RunProcess(bool aBlocking, char** aMyArgv, nsIObserver* aObserver, } } - mExitValue = -1; - mPid = -1; + { + MutexAutoLock lock(mLock); + mExitValue = -1; + mPid = -1; + } #if defined(PROCESSMODEL_WINAPI) BOOL retVal; @@ -477,6 +483,7 @@ nsProcess::RunProcess(bool aBlocking, char** aMyArgv, nsIObserver* aObserver, mBlocking = aBlocking; if (aBlocking) { Monitor(this); + MutexAutoLock lock(mLock); if (mExitValue < 0) { return NS_ERROR_FILE_EXECUTION_FAILED; } |