Small change to move GrProcessor and GrBatch pools over to SkSpinlock
authorjoshualitt <joshualitt@chromium.org>
Mon, 30 Mar 2015 16:53:47 +0000 (09:53 -0700)
committerCommit bot <commit-bot@chromium.org>
Mon, 30 Mar 2015 16:53:47 +0000 (09:53 -0700)
BUG=skia:

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

src/gpu/GrBatch.cpp
src/gpu/GrProcessor.cpp

index 4df765e..ce30499 100644 (file)
@@ -1,24 +1,31 @@
+/*
+ * Copyright 2015 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
 #include "GrBatch.h"
 
 #include "GrMemoryPool.h"
-#include "SkMutex.h"
+#include "SkSpinlock.h"
 
 // TODO I noticed a small benefit to using a larger exclusive pool for batches.  Its very small,
 // but seems to be mostly consistent.  There is a lot in flux right now, but we should really
 // revisit this when batch is everywhere
 
 
-// We use a global pool protected by a mutex. Chrome may use the same GrContext on different
-// threads. The GrContext is not used concurrently on different threads and there is a memory
-// barrier between accesses of a context on different threads. Also, there may be multiple
+// We use a global pool protected by a mutex(spinlock). Chrome may use the same GrContext on
+// different threads. The GrContext is not used concurrently on different threads and there is a
+// memory barrier between accesses of a context on different threads. Also, there may be multiple
 // GrContexts and those contexts may be in use concurrently on different threads.
 namespace {
-SK_DECLARE_STATIC_MUTEX(gBatchPoolMutex);
+SK_DECLARE_STATIC_SPINLOCK(gBatchSpinlock);
 class MemoryPoolAccessor {
 public:
-    MemoryPoolAccessor() { gBatchPoolMutex.acquire(); }
+    MemoryPoolAccessor() { gBatchSpinlock.acquire(); }
 
-    ~MemoryPoolAccessor() { gBatchPoolMutex.release(); }
+    ~MemoryPoolAccessor() { gBatchSpinlock.release(); }
 
     GrMemoryPool* pool() const {
         static GrMemoryPool gPool(16384, 16384);
index 3b8cb67..4bda2e1 100644 (file)
@@ -12,7 +12,7 @@
 #include "GrInvariantOutput.h"
 #include "GrMemoryPool.h"
 #include "GrXferProcessor.h"
-#include "SkMutex.h"
+#include "SkSpinlock.h"
 
 #if SK_ALLOW_STATIC_GLOBAL_INITIALIZERS
 
@@ -97,17 +97,17 @@ const SkMatrix& TestMatrix(SkRandom* random) {
 }
 
 
-// We use a global pool protected by a mutex. Chrome may use the same GrContext on different
-// threads. The GrContext is not used concurrently on different threads and there is a memory
-// barrier between accesses of a context on different threads. Also, there may be multiple
+// We use a global pool protected by a mutex(spinlock). Chrome may use the same GrContext on
+// different threads. The GrContext is not used concurrently on different threads and there is a
+// memory barrier between accesses of a context on different threads. Also, there may be multiple
 // GrContexts and those contexts may be in use concurrently on different threads.
 namespace {
-SK_DECLARE_STATIC_MUTEX(gProcessorPoolMutex);
+SK_DECLARE_STATIC_SPINLOCK(gProcessorSpinlock);
 class MemoryPoolAccessor {
 public:
-    MemoryPoolAccessor() { gProcessorPoolMutex.acquire(); }
+    MemoryPoolAccessor() { gProcessorSpinlock.acquire(); }
 
-    ~MemoryPoolAccessor() { gProcessorPoolMutex.release(); }
+    ~MemoryPoolAccessor() { gProcessorSpinlock.release(); }
 
     GrMemoryPool* pool() const {
         static GrMemoryPool gPool(4096, 4096);