Mike Klein
3b7658a475
Teach TSAN directly about semaphore_t.
...
Instead of teaching TSAN than SkMutex is a lock to get around it not
understanding Mach semaphore_t routines, teach it that there is a
happens-before relationship between semaphore_signal() and
semaphore_wait().
This reverts commit e395bf2d18
.
New changes are entirely restricted to SkSemaphore.cpp.
Change-Id: I27f647b93c48e81e8327db849881d669c4cd3d04
Reviewed-on: https://skia-review.googlesource.com/49180
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-09-21 17:09:40 +00:00
Mike Klein
e395bf2d18
Mac TSAN support: annotate Sk[Base]Mutex as a mutex.
...
TSAN does not intercept Mach semaphore_t calls used to implement
SkBaseMutex's fSemaphore (its OSSemaphore field). We can teach
it that Sk[Base]Mutex is a mutex anyway with the same annotations
we use for SkSharedMutex.
Change-Id: Ib91928bb9fcfa94f5cea985b46dea31ff2b56963
Reviewed-on: https://skia-review.googlesource.com/48580
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Herb Derby <herb@google.com>
2017-09-19 18:05:50 +00:00
mtklein
f10637f279
Type-erase SkAutoMutexAcquire and SkAutoExclusive.
...
This is purely for convenience, to not need to write the lock type
in the guard anymore. This should all inline away.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2055023003
Review-Url: https://codereview.chromium.org/2055023003
2016-06-10 13:56:35 -07:00
mtklein
42846ed437
Modernize SkMutex and SkSemaphore.
...
- use <atomic>
- fuse SkMutex and SkBaseMutex
- fuse SkSemaphore and SkBaseSemaphore
Still TODO:
- replace SK_DECLARE_STATIC_MUTEX(name) with static SkMutex name
I just didn't want to bother fixing all that up until I know this CL sticks.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1947153002
No public API changes.
TBR=reed@google.com
Committed: https://skia.googlesource.com/skia/+/427c2819d9237d7d7729c59238036cfc73c072ea
Review-Url: https://codereview.chromium.org/1947153002
2016-05-05 10:57:37 -07:00
sclittle
d9f5d20f81
Revert of Modernize SkMutex and SkSemaphore. (patchset #2 id:20001 of https://codereview.chromium.org/1947153002/ )
...
Reason for revert:
This CL seems to have broken the Linux x64 and Mac
bots, e.g.
https://build.chromium.org/p/chromium/builders/Linux%20x64/builds/19052
https://build.chromium.org/p/chromium/builders/Mac/builds/15151
The error appears to have something to do with new static initializers being
added.
Original issue's description:
> Modernize SkMutex and SkSemaphore.
>
> - use <atomic>
> - fuse SkMutex and SkBaseMutex
> - fuse SkSemaphore and SkBaseSemaphore
>
> Still TODO:
> - replace SK_DECLARE_STATIC_MUTEX(name) with static SkMutex name
>
> I just didn't want to bother fixing all that up until I know this CL sticks.
>
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1947153002
>
> No public API changes.
> TBR=reed@google.com
>
> Committed: https://skia.googlesource.com/skia/+/427c2819d9237d7d7729c59238036cfc73c072ea
TBR=herb@google.com ,mtklein@chromium.org,reed@google.com,bsalomon@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=609340
Review-Url: https://codereview.chromium.org/1945343003
2016-05-04 18:23:30 -07:00
reed
086eea93b1
Revert of SK_DECLARE_STATIC_MUTEX -> static SkMutex (patchset #1 id:1 of https://codereview.chromium.org/1948193002/ )
...
Reason for revert:
broken the Mac and Linux builders, e.g.:
https://build.chromium.org/p/chromium/builders/Mac/builds/15151
https://build.chromium.org/p/chromium/builders/Linux%20x64/builds/19052
Original issue's description:
> SK_DECLARE_STATIC_MUTEX -> static SkMutex
>
> There's no need to use a macro to declare static SkMutexes any more
> (and there's likewise no need to restrict them to global scope).
>
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1948193002
>
> Committed: https://skia.googlesource.com/skia/+/5e56cfd3fa1041dbb83899844fb92fa9a2ef1009
TBR=mtklein@google.com ,mtklein@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review-Url: https://codereview.chromium.org/1945353003
2016-05-04 17:12:46 -07:00
mtklein
5e56cfd3fa
SK_DECLARE_STATIC_MUTEX -> static SkMutex
...
There's no need to use a macro to declare static SkMutexes any more
(and there's likewise no need to restrict them to global scope).
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1948193002
Review-Url: https://codereview.chromium.org/1948193002
2016-05-04 15:21:12 -07:00
mtklein
427c2819d9
Modernize SkMutex and SkSemaphore.
...
- use <atomic>
- fuse SkMutex and SkBaseMutex
- fuse SkSemaphore and SkBaseSemaphore
Still TODO:
- replace SK_DECLARE_STATIC_MUTEX(name) with static SkMutex name
I just didn't want to bother fixing all that up until I know this CL sticks.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1947153002
No public API changes.
TBR=reed@google.com
Review-Url: https://codereview.chromium.org/1947153002
2016-05-04 11:31:29 -07:00
herb
546dc3294d
Use SkAutoTExclusive guard in DirectWrite port.
...
Review URL: https://codereview.chromium.org/1417873005
2015-10-23 10:48:26 -07:00
herb
12449a9614
Add lighter weight lock guards.
...
BUG=skia:
Review URL: https://codereview.chromium.org/1417583005
2015-10-21 19:11:13 -07:00
herb
e4c17356b6
Unify ThreadID.
...
BUG=skia:
Review URL: https://codereview.chromium.org/1371303003
2015-09-29 14:38:01 -07:00
herb
62a69c26b3
Move Mutexy things to private.
...
There is no API change.
TBR=reed@google.com
BUG=skia:
Review URL: https://codereview.chromium.org/1368333004
2015-09-29 11:47:45 -07:00