aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Hal Canary <halcanary@google.com>2017-04-25 08:58:57 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-05-05 15:10:13 +0000
commit788c3c467a019f31e6e2c6d07a7b644bc157bb34 (patch)
tree9eb51c34dd4f440507b81dbed4f5a96b0cd96e61
parentbc5d4d769098a4fb46685c0e59034dc8e12318a2 (diff)
SkDiscardableMemoryPool: always have a mutex for testing
Change-Id: I898058f1125f62832f2b2b661c661efb0f84da6d Reviewed-on: https://skia-review.googlesource.com/14274 Commit-Queue: Hal Canary <halcanary@google.com> Reviewed-by: Herb Derby <herb@google.com>
-rw-r--r--src/lazy/SkDiscardableMemoryPool.cpp24
-rw-r--r--src/lazy/SkDiscardableMemoryPool.h3
-rw-r--r--tests/DiscardableMemoryPoolTest.cpp3
-rw-r--r--tests/DiscardableMemoryTest.cpp2
-rw-r--r--tests/ImageCacheTest.cpp2
-rw-r--r--tests/SkResourceCacheTest.cpp2
6 files changed, 13 insertions, 23 deletions
diff --git a/src/lazy/SkDiscardableMemoryPool.cpp b/src/lazy/SkDiscardableMemoryPool.cpp
index aeba34bb04..6e5582a494 100644
--- a/src/lazy/SkDiscardableMemoryPool.cpp
+++ b/src/lazy/SkDiscardableMemoryPool.cpp
@@ -27,10 +27,7 @@ class PoolDiscardableMemory;
*/
class DiscardableMemoryPool : public SkDiscardableMemoryPool {
public:
- /**
- * Without mutex, will be not be thread safe.
- */
- DiscardableMemoryPool(size_t budget, SkBaseMutex* mutex = nullptr);
+ DiscardableMemoryPool(size_t budget);
~DiscardableMemoryPool() override;
std::unique_ptr<SkDiscardableMemory> make(size_t bytes);
@@ -56,7 +53,7 @@ public:
#endif // SK_LAZY_CACHE_STATS
private:
- SkBaseMutex* fMutex;
+ SkMutex fMutex;
size_t fBudget;
size_t fUsed;
SkTInternalLList<PoolDiscardableMemory> fList;
@@ -126,10 +123,8 @@ void PoolDiscardableMemory::unlock() {
////////////////////////////////////////////////////////////////////////////////
-DiscardableMemoryPool::DiscardableMemoryPool(size_t budget,
- SkBaseMutex* mutex)
- : fMutex(mutex)
- , fBudget(budget)
+DiscardableMemoryPool::DiscardableMemoryPool(size_t budget)
+ : fBudget(budget)
, fUsed(0) {
#if SK_LAZY_CACHE_STATS
fCacheHits = 0;
@@ -144,9 +139,7 @@ DiscardableMemoryPool::~DiscardableMemoryPool() {
}
void DiscardableMemoryPool::dumpDownTo(size_t budget) {
- if (fMutex != nullptr) {
- fMutex->assertHeld();
- }
+ fMutex.assertHeld();
if (fUsed <= budget) {
return;
}
@@ -236,14 +229,13 @@ void DiscardableMemoryPool::dumpPool() {
} // namespace
-sk_sp<SkDiscardableMemoryPool> SkDiscardableMemoryPool::Make(size_t size, SkBaseMutex* mutex) {
- return sk_make_sp<DiscardableMemoryPool>(size, mutex);
+sk_sp<SkDiscardableMemoryPool> SkDiscardableMemoryPool::Make(size_t size) {
+ return sk_make_sp<DiscardableMemoryPool>(size);
}
SkDiscardableMemoryPool* SkGetGlobalDiscardableMemoryPool() {
- static SkBaseMutex gMutex;
// Intentionally leak this global pool.
static SkDiscardableMemoryPool* global =
- new DiscardableMemoryPool(SK_DEFAULT_GLOBAL_DISCARDABLE_MEMORY_POOL_SIZE, &gMutex);
+ new DiscardableMemoryPool(SK_DEFAULT_GLOBAL_DISCARDABLE_MEMORY_POOL_SIZE);
return global;
}
diff --git a/src/lazy/SkDiscardableMemoryPool.h b/src/lazy/SkDiscardableMemoryPool.h
index f7beaad581..facdf3d27c 100644
--- a/src/lazy/SkDiscardableMemoryPool.h
+++ b/src/lazy/SkDiscardableMemoryPool.h
@@ -50,9 +50,8 @@ public:
/**
* This non-global pool can be used for unit tests to verify that
* the pool works.
- * Without mutex, will be not be thread safe.
*/
- static sk_sp<SkDiscardableMemoryPool> Make(size_t size, SkBaseMutex* mutex = nullptr);
+ static sk_sp<SkDiscardableMemoryPool> Make(size_t size);
};
/**
diff --git a/tests/DiscardableMemoryPoolTest.cpp b/tests/DiscardableMemoryPoolTest.cpp
index b8fd6d712a..c91e827eb3 100644
--- a/tests/DiscardableMemoryPoolTest.cpp
+++ b/tests/DiscardableMemoryPoolTest.cpp
@@ -9,8 +9,7 @@
#include "Test.h"
DEF_TEST(DiscardableMemoryPool, reporter) {
- sk_sp<SkDiscardableMemoryPool> pool(
- SkDiscardableMemoryPool::Make(1, nullptr));
+ sk_sp<SkDiscardableMemoryPool> pool(SkDiscardableMemoryPool::Make(1));
pool->setRAMBudget(3);
REPORTER_ASSERT(reporter, 0 == pool->getRAMUsed());
diff --git a/tests/DiscardableMemoryTest.cpp b/tests/DiscardableMemoryTest.cpp
index e0125ec21b..818fbea2e3 100644
--- a/tests/DiscardableMemoryTest.cpp
+++ b/tests/DiscardableMemoryTest.cpp
@@ -53,7 +53,7 @@ DEF_TEST(DiscardableMemory_global, reporter) {
DEF_TEST(DiscardableMemory_nonglobal, reporter) {
sk_sp<SkDiscardableMemoryPool> pool(
- SkDiscardableMemoryPool::Make(1024, /* mutex = */ nullptr));
+ SkDiscardableMemoryPool::Make(1024));
std::unique_ptr<SkDiscardableMemory> dm(pool->create(kTestStringLength));
test_dm(reporter, dm.get(), true);
}
diff --git a/tests/ImageCacheTest.cpp b/tests/ImageCacheTest.cpp
index 9472388225..457df911c1 100644
--- a/tests/ImageCacheTest.cpp
+++ b/tests/ImageCacheTest.cpp
@@ -121,7 +121,7 @@ DEF_TEST(ImageCache, reporter) {
test_cache(reporter, cache, true);
}
{
- sk_sp<SkDiscardableMemoryPool> pool(SkDiscardableMemoryPool::Make(defLimit, nullptr));
+ sk_sp<SkDiscardableMemoryPool> pool(SkDiscardableMemoryPool::Make(defLimit));
gPool = pool.get();
SkResourceCache cache(pool_factory);
test_cache(reporter, cache, true);
diff --git a/tests/SkResourceCacheTest.cpp b/tests/SkResourceCacheTest.cpp
index 7a9c8760e5..5f8770dda6 100644
--- a/tests/SkResourceCacheTest.cpp
+++ b/tests/SkResourceCacheTest.cpp
@@ -127,7 +127,7 @@ DEF_TEST(BitmapCache_discarded_bitmap, reporter) {
testBitmapCache_discarded_bitmap(reporter, &cache, nullptr);
}
{
- sk_sp<SkDiscardableMemoryPool> pool(SkDiscardableMemoryPool::Make(byteLimit, nullptr));
+ sk_sp<SkDiscardableMemoryPool> pool(SkDiscardableMemoryPool::Make(byteLimit));
gPool = pool.get();
SkResourceCache::DiscardableFactory factory = pool_factory;
SkResourceCache cache(factory);