diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/base/low_level_alloc.cc | 2 | ||||
-rw-r--r-- | src/base/spinlock.h | 12 | ||||
-rw-r--r-- | src/central_freelist.h | 4 | ||||
-rw-r--r-- | src/static_vars.cc | 4 |
4 files changed, 8 insertions, 14 deletions
diff --git a/src/base/low_level_alloc.cc b/src/base/low_level_alloc.cc index d537d9c..db91155 100644 --- a/src/base/low_level_alloc.cc +++ b/src/base/low_level_alloc.cc @@ -248,7 +248,7 @@ namespace { this->arena_->mu.Lock(); } ~ArenaLock() { RAW_CHECK(this->left_, "haven't left Arena region"); } - void Leave() /*UNLOCK_FUNCTION()*/ { + void Leave() UNLOCK_FUNCTION() { this->arena_->mu.Unlock(); #if 0 if (this->mask_valid_) { diff --git a/src/base/spinlock.h b/src/base/spinlock.h index a481c8d..118f541 100644 --- a/src/base/spinlock.h +++ b/src/base/spinlock.h @@ -63,9 +63,7 @@ class LOCKABLE SpinLock { } // Acquire this SpinLock. - // TODO(csilvers): uncomment the annotation when we figure out how to - // support this macro with 0 args (see thread_annotations.h) - inline void Lock() /*EXCLUSIVE_LOCK_FUNCTION()*/ { + inline void Lock() EXCLUSIVE_LOCK_FUNCTION() { if (base::subtle::Acquire_CompareAndSwap(&lockword_, kSpinLockFree, kSpinLockHeld) != kSpinLockFree) { SlowLock(); @@ -84,9 +82,7 @@ class LOCKABLE SpinLock { } // Release this SpinLock, which must be held by the calling thread. - // TODO(csilvers): uncomment the annotation when we figure out how to - // support this macro with 0 args (see thread_annotations.h) - inline void Unlock() /*UNLOCK_FUNCTION()*/ { + inline void Unlock() UNLOCK_FUNCTION() { uint64 prev_value = static_cast<uint64>( base::subtle::Release_AtomicExchange(&lockword_, kSpinLockFree)); if (prev_value != kSpinLockHeld) { @@ -127,9 +123,7 @@ class SCOPED_LOCKABLE SpinLockHolder { : lock_(l) { l->Lock(); } - // TODO(csilvers): uncomment the annotation when we figure out how to - // support this macro with 0 args (see thread_annotations.h) - inline ~SpinLockHolder() /*UNLOCK_FUNCTION()*/ { lock_->Unlock(); } + inline ~SpinLockHolder() UNLOCK_FUNCTION() { lock_->Unlock(); } }; // Catch bug where variable name is omitted, e.g. SpinLockHolder (&lock); #define SpinLockHolder(x) COMPILE_ASSERT(0, spin_lock_decl_missing_var_name) diff --git a/src/central_freelist.h b/src/central_freelist.h index 4148680..0f66e0c 100644 --- a/src/central_freelist.h +++ b/src/central_freelist.h @@ -82,11 +82,11 @@ class CentralFreeList { // Lock/Unlock the internal SpinLock. Used on the pthread_atfork call // to set the lock in a consistent state before the fork. - void Lock() { + void Lock() EXCLUSIVE_LOCK_FUNCTION(lock_) { lock_.Lock(); } - void Unlock() { + void Unlock() UNLOCK_FUNCTION(lock_) { lock_.Unlock(); } diff --git a/src/static_vars.cc b/src/static_vars.cc index ab5a9cc..fef6ed1 100644 --- a/src/static_vars.cc +++ b/src/static_vars.cc @@ -52,14 +52,14 @@ namespace tcmalloc { // sure the central_cache locks remain in a consisten state in the forked // version of the thread. -void CentralCacheLockAll() +void CentralCacheLockAll() NO_THREAD_SAFETY_ANALYSIS { Static::pageheap_lock()->Lock(); for (int i = 0; i < Static::num_size_classes(); ++i) Static::central_cache()[i].Lock(); } -void CentralCacheUnlockAll() +void CentralCacheUnlockAll() NO_THREAD_SAFETY_ANALYSIS { for (int i = 0; i < Static::num_size_classes(); ++i) Static::central_cache()[i].Unlock(); |