diff options
author | Hal Canary <halcanary@google.com> | 2017-04-25 08:58:57 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-05-05 15:10:13 +0000 |
commit | 788c3c467a019f31e6e2c6d07a7b644bc157bb34 (patch) | |
tree | 9eb51c34dd4f440507b81dbed4f5a96b0cd96e61 | |
parent | bc5d4d769098a4fb46685c0e59034dc8e12318a2 (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.cpp | 24 | ||||
-rw-r--r-- | src/lazy/SkDiscardableMemoryPool.h | 3 | ||||
-rw-r--r-- | tests/DiscardableMemoryPoolTest.cpp | 3 | ||||
-rw-r--r-- | tests/DiscardableMemoryTest.cpp | 2 | ||||
-rw-r--r-- | tests/ImageCacheTest.cpp | 2 | ||||
-rw-r--r-- | tests/SkResourceCacheTest.cpp | 2 |
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); |