Bitcoin
thread_annotations.h
Go to the documentation of this file.
1 // Copyright (c) 2012 The LevelDB Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. See the AUTHORS file for names of contributors.
4 
5 #ifndef STORAGE_LEVELDB_PORT_THREAD_ANNOTATIONS_H_
6 #define STORAGE_LEVELDB_PORT_THREAD_ANNOTATIONS_H_
7 
8 // Some environments provide custom macros to aid in static thread-safety
9 // analysis. Provide empty definitions of such macros unless they are already
10 // defined.
11 
12 #ifndef EXCLUSIVE_LOCKS_REQUIRED
13 #define EXCLUSIVE_LOCKS_REQUIRED(...)
14 #endif
15 
16 #ifndef SHARED_LOCKS_REQUIRED
17 #define SHARED_LOCKS_REQUIRED(...)
18 #endif
19 
20 #ifndef LOCKS_EXCLUDED
21 #define LOCKS_EXCLUDED(...)
22 #endif
23 
24 #ifndef LOCK_RETURNED
25 #define LOCK_RETURNED(x)
26 #endif
27 
28 #ifndef LOCKABLE
29 #define LOCKABLE
30 #endif
31 
32 #ifndef SCOPED_LOCKABLE
33 #define SCOPED_LOCKABLE
34 #endif
35 
36 #ifndef EXCLUSIVE_LOCK_FUNCTION
37 #define EXCLUSIVE_LOCK_FUNCTION(...)
38 #endif
39 
40 #ifndef SHARED_LOCK_FUNCTION
41 #define SHARED_LOCK_FUNCTION(...)
42 #endif
43 
44 #ifndef EXCLUSIVE_TRYLOCK_FUNCTION
45 #define EXCLUSIVE_TRYLOCK_FUNCTION(...)
46 #endif
47 
48 #ifndef SHARED_TRYLOCK_FUNCTION
49 #define SHARED_TRYLOCK_FUNCTION(...)
50 #endif
51 
52 #ifndef UNLOCK_FUNCTION
53 #define UNLOCK_FUNCTION(...)
54 #endif
55 
56 #ifndef NO_THREAD_SAFETY_ANALYSIS
57 #define NO_THREAD_SAFETY_ANALYSIS
58 #endif
59 
60 #endif // STORAGE_LEVELDB_PORT_THREAD_ANNOTATIONS_H_