|
1 /* |
|
2 * Copyright 2013 Google Inc. |
|
3 * |
|
4 * Use of this source code is governed by a BSD-style license that can be |
|
5 * found in the LICENSE file. |
|
6 */ |
|
7 |
|
8 #ifndef SkMutex_none_DEFINED |
|
9 #define SkMutex_none_DEFINED |
|
10 |
|
11 /** Non-mutex mutex for uniprocessor systems. */ |
|
12 |
|
13 struct SkBaseMutex { |
|
14 void acquire() { } |
|
15 void release() { } |
|
16 }; |
|
17 |
|
18 class SkMutex : public SkBaseMutex { |
|
19 public: |
|
20 SkMutex() { } |
|
21 ~SkMutex() { } |
|
22 |
|
23 private: |
|
24 SkMutex(const SkMutex&); |
|
25 SkMutex& operator=(const SkMutex&); |
|
26 }; |
|
27 |
|
28 // Using POD-style initialization prevents the generation of a static initializer. |
|
29 #define SK_DECLARE_STATIC_MUTEX(name) static SkBaseMutex name = { } |
|
30 |
|
31 // Special case used when the static mutex must be available globally. |
|
32 #define SK_DECLARE_GLOBAL_MUTEX(name) SkBaseMutex name = { } |
|
33 |
|
34 #endif |