gecko-dev/dom/media/webaudio/blink
Markus Stange 4bdc4ca0fb Bug 1323100 - Register most of the remaining threadfunc threads with the profiler. r=froydnj
As far as I can tell, this covers all the remaining threads which we start
using PR_CreateThread, except the ones that are created inside NSPR or NSS,
and except for the Shutdown Watchdog thread in nsTerminator.cpp and the
CacheIO thread. The Shutdown Watchdog thread stays alive past leak detection
during shutdown (by design), so we'd report leaks if we profiled it. The
CacheIO thread seems to stay alive past shutdown leak detection sometimes as
well.

This adds a AutoProfilerRegister stack class for easy registering and
unregistering. There are a few places where we still call
profiler_register_thread() and profiler_unregister_thread() manually, either
because registration happens conditionally, or because there is a variable that
gets put on the stack before the AutoProfilerRegister (e.g. a dynamically
generated thread name). AutoProfilerRegister needs to be the first object on
the stack because it uses its own `this` pointer as the stack top address.

MozReview-Commit-ID: 3vwhS55Yzt

--HG--
extra : rebase_source : 56dd27282e7bd09a7e7dc7ca09ccfe3a0198e7af
2017-01-05 16:34:26 +01:00
..
Biquad.cpp
Biquad.h
DenormalDisabler.h
DynamicsCompressor.cpp
DynamicsCompressor.h
DynamicsCompressorKernel.cpp
DynamicsCompressorKernel.h
FFTConvolver.cpp
FFTConvolver.h
HRTFDatabase.cpp
HRTFDatabase.h
HRTFDatabaseLoader.cpp Bug 1323100 - Register most of the remaining threadfunc threads with the profiler. r=froydnj 2017-01-05 16:34:26 +01:00
HRTFDatabaseLoader.h
HRTFElevation.cpp
HRTFElevation.h
HRTFKernel.cpp
HRTFKernel.h
HRTFPanner.cpp
HRTFPanner.h
IIRFilter.cpp
IIRFilter.h
IRC_Composite_C_R0195-incl.cpp
PeriodicWave.cpp
PeriodicWave.h
README
Reverb.cpp
Reverb.h
ReverbAccumulationBuffer.cpp
ReverbAccumulationBuffer.h
ReverbConvolver.cpp
ReverbConvolver.h
ReverbConvolverStage.cpp
ReverbConvolverStage.h
ReverbInputBuffer.cpp
ReverbInputBuffer.h
ZeroPole.cpp
ZeroPole.h
moz.build

README

This directory contains the code originally borrowed from the Blink Web Audio
implementation.  We are forking the code here because in many cases the burden
of adopting Blink specific utilities is too large compared to the prospect of
importing upstream fixes by just copying newer versions of the code in the
future.

The process of borrowing code from Blink is as follows:

* Try to borrow utility classes only, and avoid borrowing code which depends
  too much on the Blink specific utilities.
* First, import the pristine files from the Blink repository before adding
  them to the build system, noting the SVN revision of Blink from which the
  original files were copied in the commit message.
* In a separate commit, add the imported source files to the build system,
  and apply the necessary changes to make it build successfully.
* Use the code in a separate commit.
* Never add headers as exported headers.  All headers should be included
  using the following convention: #include "blink/Header.h".
* Leave the imported code in the WebCore namespace, and import the needed
  names into the Mozilla code via `using'.
* Cherry-pick upsteam fixes manually when needed.  In case you fix a problem
  that is not Mozilla specific locally, try to upstream your changes into
  Blink.
* Ping ehsan for any questions.