gecko-dev/xpcom/threads
Boris Zbarsky 4a89a400e1 Bug 1600331. When an idle runnable is queued from a background thread, lazily queue it from a non-idle runnable. r=smaug
Idle runnables do weird things involving unlocking the event queue mutex while
looking for runnables, such that queueing one from off the main thread might
cause it to basically never run if it gets queued during one of those
temporary-unlock periods.

Differential Revision: https://phabricator.services.mozilla.com/D65019

--HG--
extra : moz-landing-system : lando
2020-03-03 01:47:24 +00:00
..
AbstractEventQueue.h Bug 1613985 - Use default for equivalent-to-default constructors/destructors in xpcom. r=froydnj 2020-02-12 11:13:33 +00:00
AbstractThread.cpp
AbstractThread.h Bug 1609815 - Remove Web Replay C++ implementation. r=jgilbert,jandem,gbrown 2020-02-27 17:39:15 +00:00
BlockingResourceBase.cpp Bug 1241518 - Part 3: Switch various nsAutoPtr uses to UniquePtr in xpcom/ r=kmag 2020-01-07 00:06:05 +00:00
BlockingResourceBase.h
CPUUsageWatcher.cpp
CPUUsageWatcher.h
CondVar.h Bug 1613985 - Use MOZ_COUNTED_DEFAULT_CTOR_*/MOZ_COUNTED_DTOR_* macros. r=froydnj 2020-02-20 11:40:14 +00:00
DataMutex.h Bug 1609815 - Remove Web Replay C++ implementation. r=jgilbert,jandem,gbrown 2020-02-27 17:39:15 +00:00
DeadlockDetector.h Bug 1609815 - Remove Web Replay C++ implementation. r=jgilbert,jandem,gbrown 2020-02-27 17:39:15 +00:00
EventQueue.cpp Bug 1597728: Make EventQueue support templatization for queue page size r=froydnj 2019-11-21 03:47:19 +00:00
EventQueue.h Bug 1597158 part 3. Expose whether there are any idle runnables on PrioritizedEventQueue. r=smaug 2019-11-22 14:06:29 +00:00
IdlePeriodState.cpp Bug 1609815 - Remove Web Replay C++ implementation. r=jgilbert,jandem,gbrown 2020-02-27 17:39:15 +00:00
IdlePeriodState.h Bug 1606410. Make idle state peeking look more like idle state getting, so consumers can be more similar. r=smaug 2019-12-31 15:15:17 +00:00
IdleTaskRunner.cpp
IdleTaskRunner.h
InputEventStatistics.cpp
InputEventStatistics.h Bug 1613985 - Use default for equivalent-to-default constructors/destructors in xpcom. r=froydnj 2020-02-12 11:13:33 +00:00
LazyIdleThread.cpp Bug 1600545 - Remove useless inclusions of header files generated from IDL files in modules/, netwerk/, parser/, security/, startupcache/, storage/, toolkit/, tools/, uriloader/, widget/, xpcom/ and xpfe/ r=Ehsan 2019-12-06 09:17:57 +00:00
LazyIdleThread.h
LeakRefPtr.h
MainThreadIdlePeriod.cpp
MainThreadIdlePeriod.h Bug 1613985 - Use default for equivalent-to-default constructors/destructors in xpcom. r=froydnj 2020-02-12 11:13:33 +00:00
MainThreadQueue.h Bug 1597157. Remove unused mNextIdleDeadline bits. r=smaug 2019-11-18 17:05:30 +00:00
MainThreadUtils.h
Monitor.h Bug 1609815 - Remove Web Replay C++ implementation. r=jgilbert,jandem,gbrown 2020-02-27 17:39:15 +00:00
MozPromise.h Bug 1616848 - Remove monitor from MozPromiseHolder and provide separate MozMonitoredPromiseHolder class. r=froydnj 2020-02-20 14:53:20 +00:00
MozPromiseInlines.h Bug 1575744 - P4. Add MozPromise::FromDomPromise. r=bholley 2019-09-20 04:09:46 +00:00
Mutex.h Bug 1618165 - Provide BaseAutoLock and BaseAutoUnlock deduction guides for Mutex references. r=froydnj 2020-02-28 07:59:30 +00:00
PerformanceCounter.cpp
PerformanceCounter.h Bug 1613985 - Use default for equivalent-to-default constructors/destructors in xpcom. r=froydnj 2020-02-12 11:13:33 +00:00
PrioritizedEventQueue.cpp Bug 1600331. When an idle runnable is queued from a background thread, lazily queue it from a non-idle runnable. r=smaug 2020-03-03 01:47:24 +00:00
PrioritizedEventQueue.h Bug 1600331. When an idle runnable is queued from a background thread, lazily queue it from a non-idle runnable. r=smaug 2020-03-03 01:47:24 +00:00
Queue.h Bug 1613985 - Use default for equivalent-to-default constructors/destructors in xpcom. r=froydnj 2020-02-12 11:13:33 +00:00
RWLock.cpp
RWLock.h Bug 1615072 - don't trigger the deadlock detector from static initializers for RWLock; r=mccr8 2020-02-14 21:44:05 +00:00
RecursiveMutex.cpp
RecursiveMutex.h
ReentrantMonitor.h Bug 1609815 - Remove Web Replay C++ implementation. r=jgilbert,jandem,gbrown 2020-02-27 17:39:15 +00:00
SchedulerGroup.cpp Bug 1611415 - Prefer using std::move over forget. r=froydnj 2020-02-13 14:38:48 +00:00
SchedulerGroup.h Bug 1561715 - Part 3: Remove SchedulerGroup::IsBackground. r=smaug 2019-12-12 15:20:52 +00:00
SharedThreadPool.cpp Bug 1613985 - Use default for equivalent-to-default constructors/destructors in xpcom. r=froydnj 2020-02-12 11:13:33 +00:00
SharedThreadPool.h Bug 1600545 - Remove useless inclusions of header files generated from IDL files in modules/, netwerk/, parser/, security/, startupcache/, storage/, toolkit/, tools/, uriloader/, widget/, xpcom/ and xpfe/ r=Ehsan 2019-12-06 09:17:57 +00:00
StateMirroring.h
StateWatching.h
SyncRunnable.h Bug 1609996 - Reorder some includes affected by the previous patches. r=froydnj 2020-01-20 16:19:48 +00:00
SynchronizedEventQueue.cpp
SynchronizedEventQueue.h Bug 1613985 - Use default for equivalent-to-default constructors/destructors in xpcom. r=froydnj 2020-02-12 11:13:33 +00:00
SystemGroup.cpp Bug 1609996 - Reorder some includes affected by the previous patches. r=froydnj 2020-01-20 16:19:48 +00:00
SystemGroup.h
TaskCategory.h
TaskDispatcher.h Bug 1613985 - Use MOZ_COUNTED_DEFAULT_CTOR_*/MOZ_COUNTED_DTOR_* macros. r=froydnj 2020-02-20 11:40:14 +00:00
TaskQueue.cpp Bug 1611415 - Prefer using std::move over forget. r=froydnj 2020-02-13 14:38:48 +00:00
TaskQueue.h Bug 1617437 - TaskQueue.h: Fix a -Wnon-c-typedef-for-linkage warning r=froydnj 2020-02-23 12:59:35 +00:00
ThreadBound.h
ThreadDelay.cpp
ThreadDelay.h
ThreadEventQueue.cpp Bug 1607595 - Remove uses of mozilla::IsBaseOf. r=froydnj 2020-01-08 14:52:10 +00:00
ThreadEventQueue.h Bug 1572337: Monitor running event delays and start times r=froydnj 2019-11-08 21:07:36 +00:00
ThreadEventTarget.cpp Bug 1611415 - Prefer using std::move over forget. r=froydnj 2020-02-13 14:38:48 +00:00
ThreadEventTarget.h Bug 1613985 - Use default for equivalent-to-default constructors/destructors in xpcom. r=froydnj 2020-02-12 11:13:33 +00:00
ThreadLocalVariables.cpp
ThrottledEventQueue.cpp Bug 1597728: Make EventQueue support templatization for queue page size r=froydnj 2019-11-21 03:47:19 +00:00
ThrottledEventQueue.h
TimerThread.cpp Bug 1609815 - Remove Web Replay C++ implementation. r=jgilbert,jandem,gbrown 2020-02-27 17:39:15 +00:00
TimerThread.h
components.conf
moz.build Bug 1589561. Factor out idle handling from PrioritizedEventQueue. r=smaug 2019-10-20 15:08:44 +00:00
nsEnvironment.cpp Bug 1613985 - Use default for equivalent-to-default constructors/destructors in xpcom. r=froydnj 2020-02-12 11:13:33 +00:00
nsEnvironment.h
nsICancelableRunnable.h Bug 1613985 - Use default for equivalent-to-default constructors/destructors in xpcom. r=froydnj 2020-02-12 11:13:33 +00:00
nsIEnvironment.idl
nsIEventTarget.idl Bug 1602646 - Remove vestigial references to cooperative scheduling r=froydnj 2019-12-12 00:56:53 +00:00
nsIIdlePeriod.idl
nsIIdleRunnable.h Bug 1613985 - Use default for equivalent-to-default constructors/destructors in xpcom. r=froydnj 2020-02-12 11:13:33 +00:00
nsINamed.idl
nsIProcess.idl
nsIRunnable.idl Bug 1606672. Change nsIRunnablePriority values so increasing value indicates increased priority. r=smaug 2020-01-02 20:07:40 +00:00
nsISerialEventTarget.idl
nsISupportsPriority.idl
nsIThread.idl Bug 1572337: Make GetRunningEventDelay handle threadpools r=froydnj 2019-11-08 21:07:45 +00:00
nsIThreadInternal.idl
nsIThreadManager.idl Bug 1613091. Use the platform default stack size for unoptimized builds. r=glandium 2020-02-12 00:48:01 +00:00
nsIThreadPool.idl Bug 1604549 - remove scriptability and classinfo from nsThreadPool; r=bzbarsky 2019-12-17 17:12:14 +00:00
nsITimer.idl
nsMemoryPressure.cpp
nsMemoryPressure.h
nsProcess.h Bug 1600545 - Remove useless inclusions of header files generated from IDL files in modules/, netwerk/, parser/, security/, startupcache/, storage/, toolkit/, tools/, uriloader/, widget/, xpcom/ and xpfe/ r=Ehsan 2019-12-06 09:17:57 +00:00
nsProcessCommon.cpp Bug 1613985 - Use default for equivalent-to-default constructors/destructors in xpcom. r=froydnj 2020-02-12 11:13:33 +00:00
nsProxyRelease.cpp
nsProxyRelease.h Bug 1613985 - Use default for equivalent-to-default constructors/destructors in xpcom. r=froydnj 2020-02-12 11:13:33 +00:00
nsThread.cpp Bug 1613985 - Use MOZ_COUNTED_DEFAULT_CTOR_*/MOZ_COUNTED_DTOR_* macros. r=froydnj 2020-02-20 11:40:14 +00:00
nsThread.h Bug 1613985 - Use default for equivalent-to-default constructors/destructors in xpcom. r=froydnj 2020-02-12 11:13:33 +00:00
nsThreadManager.cpp Bug 1611415 - Prefer using std::move over forget. r=froydnj 2020-02-13 14:38:48 +00:00
nsThreadManager.h Bug 1609815 - Remove Web Replay C++ implementation. r=jgilbert,jandem,gbrown 2020-02-27 17:39:15 +00:00
nsThreadPool.cpp Bug 1241518 - Part 4: Switch nsThread to use UniquePtr r=KrisWright,kmag 2020-01-07 00:06:08 +00:00
nsThreadPool.h Bug 1572337: Make GetRunningEventDelay handle threadpools r=froydnj 2019-11-08 21:07:45 +00:00
nsThreadSyncDispatch.h
nsThreadUtils.cpp Bug 1611415 - Prefer using std::move over forget. r=froydnj 2020-02-13 14:38:48 +00:00
nsThreadUtils.h Bug 1609815 - Remove Web Replay C++ implementation. r=jgilbert,jandem,gbrown 2020-02-27 17:39:15 +00:00
nsTimerImpl.cpp Bug 1613985 - Use default for equivalent-to-default constructors/destructors in xpcom. r=froydnj 2020-02-12 11:13:33 +00:00
nsTimerImpl.h