template <class Allocator>
struct TSD
Defined at line 27 of file ../../third_party/scudo/src/tsd.h
Public Members
u8 DestructorIterations
Public Methods
void init (Allocator * Instance)
Defined at line 31 of file ../../third_party/scudo/src/tsd.h
bool tryLock ()
Defined at line 38 of file ../../third_party/scudo/src/tsd.h
void lock ()
Defined at line 49 of file ../../third_party/scudo/src/tsd.h
void unlock ()
Defined at line 53 of file ../../third_party/scudo/src/tsd.h
uptr getPrecedence ()
Defined at line 54 of file ../../third_party/scudo/src/tsd.h
void commitBack (Allocator * Instance)
Defined at line 56 of file ../../third_party/scudo/src/tsd.h
void assertLocked (bool BypassCheck)
As the comments attached to `getCache()`, the TSD doesn't always need to be
locked. In that case, we would only skip the check before we have all TSDs
locked in all paths.
Defined at line 61 of file ../../third_party/scudo/src/tsd.h
typename Allocator::SizeClassAllocatorT & getSizeClassAllocator ()
Ideally, we may want to assert that all the operations on
Cache/QuarantineCache always have the `Mutex` acquired. However, the
current architecture of accessing TSD is not easy to cooperate with the
thread-safety analysis because of pointer aliasing. So now we just add the
assertion on the getters of Cache/QuarantineCache.
TODO(chiahungduan): Ideally, we want to do `Mutex.assertHeld` but acquiring
TSD doesn't always require holding the lock. Add this assertion while the
lock is always acquired.
Defined at line 75 of file ../../third_party/scudo/src/tsd.h
typename Allocator::QuarantineCacheT & getQuarantineCache ()
Defined at line 79 of file ../../third_party/scudo/src/tsd.h