Make leak counters thread-safe and turn them on by default for Debug
authorcommit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>
Fri, 17 Jan 2014 17:55:02 +0000 (17:55 +0000)
committercommit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>
Fri, 17 Jan 2014 17:55:02 +0000 (17:55 +0000)
commit2ab1ba055536825552d6b49f0210c4e1531f02f0
treeeb9064b98d3cf57316bd1586c4ba09f41f432aea
parent7322893af0f94c68401bc01677e9dcfca586d5b4
Make leak counters thread-safe and turn them on by default for Debug

Make leak counters implemented with SK_DECLARE_INST_COUNT thread-safe.
Enable the leak counting for Debug builds when Skia is built as a
static library. Having SK_DECLARE_INST_COUNT without
SK_DEFINE_INST_COUNT relies on static variables in member functions
declared in the header files. These might be duplicated in the clients
of the library when Skia is built as a dynamic library, producing
incorrect operation.

Protect the instance counter initialization step (initStep) by
using SkOnce.

Makes SkOnce.h part of the public API, since SkInstCnt is public.

Protect the per-class child list shared variable with a per-class mutex.

Changes the behavior in the way that if the child list has been
"cleaned up", it will still try to create subsequent child lists.

BUG=skia:1219
R=robertphillips@google.com, mtklein@google.com, bsalomon@google.com, bungeman@google.com, djsollen@google.com

Author: kkinnunen@nvidia.com

Review URL: https://codereview.chromium.org/99483003

git-svn-id: http://skia.googlecode.com/svn/trunk@13120 2bbb7eff-a529-9590-31e7-b0007b416f81
gm/colormatrix.cpp
gm/convexpaths.cpp
gyp/core.gypi
include/core/SkInstCnt.h
include/core/SkOnce.h [moved from src/core/SkOnce.h with 100% similarity]
include/core/SkPostConfig.h