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_ 61