Граф коммитов

5 Коммитов

Автор SHA1 Сообщение Дата
Eric Rahm 32235488fc Bug 1370644 - Part 1: Only use NS_ERROR for an imminent failure. r=froydnj
This modifies the logic in |CheckAcquisition| to only call |NS_ERROR| if we're
really going to deadlock. Instead, if we detect a suspicious cycle, we just use
an |NS_WARNING|. This means that we'll still output warning text in debug
builds, but we won't cause the process to abort.

MozReview-Commit-ID: 71mFInWwbDY
2017-06-12 16:53:04 -04:00
Nathan Froyd d0e620966f Bug 1363172 - add mozilla::RWLock; r=erahm
This sort of lock is mostly useful in the context of Stylo right now,
but perhaps there are other applications waiting to be written.
2017-05-22 21:26:26 -04:00
Nathan Froyd 5fd1d453a9 Bug 1312087 - part 1 - move mozilla::{Mutex,CondVar} to use mozglue locking primitives; r=erahm
This change moves us away from NSPR primitives for our primary
synchronization primitives.  We're still using PRMonitor for
ReentrantMonitor, however.

The benefits of this change:

* Slightly faster, as we don't have to deal with some of NSPR's overhead;

* Smaller datatypes.  On POSIX platforms in particular, PRLock is
  enormous. PRCondVar also has some unnecessary overhead.

* Less dynamic memory allocation.  Out of necessity, Mutex and CondVar
  allocated the NSPR data structures they needed, which lead to
  unnecessary checks for failure.

  While sizeof(Mutex) and sizeof(CondVar) may get bigger, since they're
  embedding structures now, the total memory usage should be less.

* Less NSPR usage.  This shouldn't need any explanation.
2017-03-21 10:20:36 -05:00
Nicholas Nethercote 334f89c567 Bug 1339327 (part 5) - Rename some profiler functions related to sleeping. r=mstange.
The new names make it clearer that these actions apply to just one thread.

- profiler_sleep_start() --> profiler_thread_sleep()
- profiler_sleep_end()   --> profiler_thread_wake()
- profiler_is_sleeping() --> profiler_thread_is_sleeping()
- GeckoProfilerSleepRAII --> GeckoProfilerThreadSleepRAII
- GeckoProfilerWakeRAII  --> GeckoProfilerThreadWakeRAII
2017-02-15 14:26:23 +11:00
Benjamin Smedberg 60cd8481eb Bug 1332631 part D - file moves from xpcom/glue to xpcom/threads, r=froydnj
MozReview-Commit-ID: kDBGvlYjyW

--HG--
rename : xpcom/glue/BlockingResourceBase.cpp => xpcom/threads/BlockingResourceBase.cpp
rename : xpcom/glue/BlockingResourceBase.h => xpcom/threads/BlockingResourceBase.h
rename : xpcom/glue/CondVar.h => xpcom/threads/CondVar.h
rename : xpcom/glue/DeadlockDetector.h => xpcom/threads/DeadlockDetector.h
rename : xpcom/glue/MainThreadUtils.h => xpcom/threads/MainThreadUtils.h
rename : xpcom/glue/Monitor.h => xpcom/threads/Monitor.h
rename : xpcom/glue/Mutex.h => xpcom/threads/Mutex.h
rename : xpcom/glue/ReentrantMonitor.h => xpcom/threads/ReentrantMonitor.h
rename : xpcom/glue/nsProxyRelease.cpp => xpcom/threads/nsProxyRelease.cpp
rename : xpcom/glue/nsProxyRelease.h => xpcom/threads/nsProxyRelease.h
rename : xpcom/glue/nsThreadUtils.cpp => xpcom/threads/nsThreadUtils.cpp
rename : xpcom/glue/nsThreadUtils.h => xpcom/threads/nsThreadUtils.h
extra : rebase_source : 5f908c04835192c1949bed0828d7bd086e795f64
extra : histedit_source : 26a8dbfd9b082c9200fbe7b176f6593e406c98ce
2017-01-20 14:13:57 -05:00