зеркало из https://github.com/mozilla/gecko-dev.git
b34e7c42ec
Currently LUL is a member of CorePS, meaning that it is guarded by the PSMutex. This mutex is grabbed by the main thread at random points during the execution of the program. This is unfortunate, as initializing LUL can take a long time (>1s on my local machine), and we definitely don't want to be blocking the main thread waiting for it. In addition, in the BHR case, we used to be grabbing LUL when we got our first hang, while both the PSMutex and the BHR monitor were being held. This meant that the main thread could make no progress during LUL initializaion, as the BHR monitor is grabbed by the main thread on every spin of the event loop. This patch moves that initialization to be behind a completely separate lock, and makes BHR initialize it on the background thread before acquiring the BHR lock, meaning that no locks other than the one guarding LUL should be held during its initialization. MozReview-Commit-ID: GwNYQaEAqJ1 |
||
---|---|---|
.. | ||
bloatview | ||
compare-locales | ||
coverity | ||
docs | ||
fuzzing | ||
git | ||
jprof | ||
leak-gauge | ||
lint | ||
memory-profiler | ||
mercurial | ||
power | ||
profiler | ||
quitter | ||
rb | ||
rewriting | ||
update-packaging | ||
mach_commands.py | ||
moz.build |