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 Bug 1157635 - Use DenormalDisabler.h to automatically flush subnormals; r=karlt 2016-08-05 15:33:08 -04:00
Biquad.h
DenormalDisabler.h Bug 1157635 - Use DenormalDisabler.h to automatically flush subnormals; r=karlt 2016-08-05 15:33:08 -04:00
DynamicsCompressor.cpp Bug 1270055 - Unaligned buffer used in DynamicsCompressor; r=padenot 2016-05-04 06:49:07 -04:00
DynamicsCompressor.h
DynamicsCompressorKernel.cpp
DynamicsCompressorKernel.h Bug 1279451 - Remove a lot of unnecessary includes of nsAutoPtr.h. rs=sparky 2016-06-07 21:10:18 +01:00
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 Bug 1157635 - Use DenormalDisabler.h to automatically flush subnormals; r=karlt 2016-08-05 15:33:08 -04:00
IIRFilter.h Bug 1265408 - Add buffersAreZero to IIRFilter; r=karlt 2016-05-31 09:28:06 -04:00
IRC_Composite_C_R0195-incl.cpp
moz.build Bug 1286877 - do not set c-basic-offset for python-mode; r=gps 2016-07-14 10:16:42 -06:00
PeriodicWave.cpp
PeriodicWave.h
README
Reverb.cpp
Reverb.h
ReverbAccumulationBuffer.cpp Bug 1263910 - Make AudioBufferAddWithScale handle unaligned buffers; r=padenot 2016-05-10 06:37:45 -04:00
ReverbAccumulationBuffer.h
ReverbConvolver.cpp
ReverbConvolver.h
ReverbConvolverStage.cpp
ReverbConvolverStage.h Bug 1279451 - Remove a lot of unnecessary includes of nsAutoPtr.h. rs=sparky 2016-06-07 21:10:18 +01:00
ReverbInputBuffer.cpp
ReverbInputBuffer.h
ZeroPole.cpp Bug 1157635 - Use DenormalDisabler.h to automatically flush subnormals; r=karlt 2016-08-05 15:33:08 -04:00
ZeroPole.h

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.