dynamic_annotations.h File Reference

Macros

#define DYNAMIC_ANNOTATIONS_ENABLED
 
#define _Py_ANNOTATE_RWLOCK_CREATE(lock)
 
#define _Py_ANNOTATE_RWLOCK_DESTROY(lock)
 
#define _Py_ANNOTATE_RWLOCK_ACQUIRED(lock, is_w)
 
#define _Py_ANNOTATE_RWLOCK_RELEASED(lock, is_w)
 
#define _Py_ANNOTATE_BARRIER_INIT(barrier, count, reinitialization_allowed)
 
#define _Py_ANNOTATE_BARRIER_WAIT_BEFORE(barrier)
 
#define _Py_ANNOTATE_BARRIER_WAIT_AFTER(barrier)
 
#define _Py_ANNOTATE_BARRIER_DESTROY(barrier)
 
#define _Py_ANNOTATE_CONDVAR_LOCK_WAIT(cv, lock)
 
#define _Py_ANNOTATE_CONDVAR_WAIT(cv)
 
#define _Py_ANNOTATE_CONDVAR_SIGNAL(cv)
 
#define _Py_ANNOTATE_CONDVAR_SIGNAL_ALL(cv)
 
#define _Py_ANNOTATE_HAPPENS_BEFORE(obj)
 
#define _Py_ANNOTATE_HAPPENS_AFTER(obj)
 
#define _Py_ANNOTATE_PUBLISH_MEMORY_RANGE(address, size)
 
#define _Py_ANNOTATE_UNPUBLISH_MEMORY_RANGE(address, size)
 
#define _Py_ANNOTATE_SWAP_MEMORY_RANGE(address, size)
 
#define _Py_ANNOTATE_PCQ_CREATE(pcq)
 
#define _Py_ANNOTATE_PCQ_DESTROY(pcq)
 
#define _Py_ANNOTATE_PCQ_PUT(pcq)
 
#define _Py_ANNOTATE_PCQ_GET(pcq)
 
#define _Py_ANNOTATE_NEW_MEMORY(address, size)
 
#define _Py_ANNOTATE_EXPECT_RACE(address, description)
 
#define _Py_ANNOTATE_BENIGN_RACE(address, description)
 
#define _Py_ANNOTATE_BENIGN_RACE_SIZED(address, size, description)
 
#define _Py_ANNOTATE_PURE_HAPPENS_BEFORE_MUTEX(mu)
 
#define _Py_ANNOTATE_MUTEX_IS_USED_AS_CONDVAR(mu)
 
#define _Py_ANNOTATE_TRACE_MEMORY(arg)
 
#define _Py_ANNOTATE_THREAD_NAME(name)
 
#define _Py_ANNOTATE_IGNORE_READS_BEGIN()
 
#define _Py_ANNOTATE_IGNORE_READS_END()
 
#define _Py_ANNOTATE_IGNORE_WRITES_BEGIN()
 
#define _Py_ANNOTATE_IGNORE_WRITES_END()
 
#define _Py_ANNOTATE_IGNORE_READS_AND_WRITES_BEGIN()
 
#define _Py_ANNOTATE_IGNORE_READS_AND_WRITES_END()
 
#define _Py_ANNOTATE_IGNORE_SYNC_BEGIN()
 
#define _Py_ANNOTATE_IGNORE_SYNC_END()
 
#define _Py_ANNOTATE_ENABLE_RACE_DETECTION(enable)
 
#define _Py_ANNOTATE_NO_OP(arg)
 
#define _Py_ANNOTATE_FLUSH_STATE()
 
#define _Py_ANNOTATE_UNPROTECTED_READ(x)
 
#define _Py_ANNOTATE_BENIGN_RACE_STATIC(static_var, description)
 

Functions

void AnnotateRWLockCreate (const char *file, int line, const volatile void *lock)
 
void AnnotateRWLockDestroy (const char *file, int line, const volatile void *lock)
 
void AnnotateRWLockAcquired (const char *file, int line, const volatile void *lock, long is_w)
 
void AnnotateRWLockReleased (const char *file, int line, const volatile void *lock, long is_w)
 
void AnnotateBarrierInit (const char *file, int line, const volatile void *barrier, long count, long reinitialization_allowed)
 
void AnnotateBarrierWaitBefore (const char *file, int line, const volatile void *barrier)
 
void AnnotateBarrierWaitAfter (const char *file, int line, const volatile void *barrier)
 
void AnnotateBarrierDestroy (const char *file, int line, const volatile void *barrier)
 
void AnnotateCondVarWait (const char *file, int line, const volatile void *cv, const volatile void *lock)
 
void AnnotateCondVarSignal (const char *file, int line, const volatile void *cv)
 
void AnnotateCondVarSignalAll (const char *file, int line, const volatile void *cv)
 
void AnnotatePublishMemoryRange (const char *file, int line, const volatile void *address, long size)
 
void AnnotateUnpublishMemoryRange (const char *file, int line, const volatile void *address, long size)
 
void AnnotatePCQCreate (const char *file, int line, const volatile void *pcq)
 
void AnnotatePCQDestroy (const char *file, int line, const volatile void *pcq)
 
void AnnotatePCQPut (const char *file, int line, const volatile void *pcq)
 
void AnnotatePCQGet (const char *file, int line, const volatile void *pcq)
 
void AnnotateNewMemory (const char *file, int line, const volatile void *address, long size)
 
void AnnotateExpectRace (const char *file, int line, const volatile void *address, const char *description)
 
void AnnotateBenignRace (const char *file, int line, const volatile void *address, const char *description)
 
void AnnotateBenignRaceSized (const char *file, int line, const volatile void *address, long size, const char *description)
 
void AnnotateMutexIsUsedAsCondVar (const char *file, int line, const volatile void *mu)
 
void AnnotateTraceMemory (const char *file, int line, const volatile void *arg)
 
void AnnotateThreadName (const char *file, int line, const char *name)
 
void AnnotateIgnoreReadsBegin (const char *file, int line)
 
void AnnotateIgnoreReadsEnd (const char *file, int line)
 
void AnnotateIgnoreWritesBegin (const char *file, int line)
 
void AnnotateIgnoreWritesEnd (const char *file, int line)
 
void AnnotateEnableRaceDetection (const char *file, int line, int enable)
 
void AnnotateNoOp (const char *file, int line, const volatile void *arg)
 
void AnnotateFlushState (const char *file, int line)
 
int RunningOnValgrind (void)
 

Macro Definition Documentation

◆ DYNAMIC_ANNOTATIONS_ENABLED

#define DYNAMIC_ANNOTATIONS_ENABLED

◆ _Py_ANNOTATE_RWLOCK_CREATE

#define _Py_ANNOTATE_RWLOCK_CREATE (   lock)

◆ _Py_ANNOTATE_RWLOCK_DESTROY

#define _Py_ANNOTATE_RWLOCK_DESTROY (   lock)

◆ _Py_ANNOTATE_RWLOCK_ACQUIRED

#define _Py_ANNOTATE_RWLOCK_ACQUIRED (   lock,
  is_w 
)

◆ _Py_ANNOTATE_RWLOCK_RELEASED

#define _Py_ANNOTATE_RWLOCK_RELEASED (   lock,
  is_w 
)

◆ _Py_ANNOTATE_BARRIER_INIT

#define _Py_ANNOTATE_BARRIER_INIT (   barrier,
  count,
  reinitialization_allowed 
)

◆ _Py_ANNOTATE_BARRIER_WAIT_BEFORE

#define _Py_ANNOTATE_BARRIER_WAIT_BEFORE (   barrier)

◆ _Py_ANNOTATE_BARRIER_WAIT_AFTER

#define _Py_ANNOTATE_BARRIER_WAIT_AFTER (   barrier)

◆ _Py_ANNOTATE_BARRIER_DESTROY

#define _Py_ANNOTATE_BARRIER_DESTROY (   barrier)

◆ _Py_ANNOTATE_CONDVAR_LOCK_WAIT

#define _Py_ANNOTATE_CONDVAR_LOCK_WAIT (   cv,
  lock 
)

◆ _Py_ANNOTATE_CONDVAR_WAIT

#define _Py_ANNOTATE_CONDVAR_WAIT (   cv)

◆ _Py_ANNOTATE_CONDVAR_SIGNAL

#define _Py_ANNOTATE_CONDVAR_SIGNAL (   cv)

◆ _Py_ANNOTATE_CONDVAR_SIGNAL_ALL

#define _Py_ANNOTATE_CONDVAR_SIGNAL_ALL (   cv)

◆ _Py_ANNOTATE_HAPPENS_BEFORE

#define _Py_ANNOTATE_HAPPENS_BEFORE (   obj)

◆ _Py_ANNOTATE_HAPPENS_AFTER

#define _Py_ANNOTATE_HAPPENS_AFTER (   obj)

◆ _Py_ANNOTATE_PUBLISH_MEMORY_RANGE

#define _Py_ANNOTATE_PUBLISH_MEMORY_RANGE (   address,
  size 
)

◆ _Py_ANNOTATE_UNPUBLISH_MEMORY_RANGE

#define _Py_ANNOTATE_UNPUBLISH_MEMORY_RANGE (   address,
  size 
)

◆ _Py_ANNOTATE_SWAP_MEMORY_RANGE

#define _Py_ANNOTATE_SWAP_MEMORY_RANGE (   address,
  size 
)

◆ _Py_ANNOTATE_PCQ_CREATE

#define _Py_ANNOTATE_PCQ_CREATE (   pcq)

◆ _Py_ANNOTATE_PCQ_DESTROY

#define _Py_ANNOTATE_PCQ_DESTROY (   pcq)

◆ _Py_ANNOTATE_PCQ_PUT

#define _Py_ANNOTATE_PCQ_PUT (   pcq)

◆ _Py_ANNOTATE_PCQ_GET

#define _Py_ANNOTATE_PCQ_GET (   pcq)

◆ _Py_ANNOTATE_NEW_MEMORY

#define _Py_ANNOTATE_NEW_MEMORY (   address,
  size 
)

◆ _Py_ANNOTATE_EXPECT_RACE

#define _Py_ANNOTATE_EXPECT_RACE (   address,
  description 
)

◆ _Py_ANNOTATE_BENIGN_RACE

#define _Py_ANNOTATE_BENIGN_RACE (   address,
  description 
)

◆ _Py_ANNOTATE_BENIGN_RACE_SIZED

#define _Py_ANNOTATE_BENIGN_RACE_SIZED (   address,
  size,
  description 
)

◆ _Py_ANNOTATE_PURE_HAPPENS_BEFORE_MUTEX

#define _Py_ANNOTATE_PURE_HAPPENS_BEFORE_MUTEX (   mu)

◆ _Py_ANNOTATE_MUTEX_IS_USED_AS_CONDVAR

#define _Py_ANNOTATE_MUTEX_IS_USED_AS_CONDVAR (   mu)

◆ _Py_ANNOTATE_TRACE_MEMORY

#define _Py_ANNOTATE_TRACE_MEMORY (   arg)

◆ _Py_ANNOTATE_THREAD_NAME

#define _Py_ANNOTATE_THREAD_NAME (   name)

◆ _Py_ANNOTATE_IGNORE_READS_BEGIN

#define _Py_ANNOTATE_IGNORE_READS_BEGIN ( )

◆ _Py_ANNOTATE_IGNORE_READS_END

#define _Py_ANNOTATE_IGNORE_READS_END ( )

◆ _Py_ANNOTATE_IGNORE_WRITES_BEGIN

#define _Py_ANNOTATE_IGNORE_WRITES_BEGIN ( )

◆ _Py_ANNOTATE_IGNORE_WRITES_END

#define _Py_ANNOTATE_IGNORE_WRITES_END ( )

◆ _Py_ANNOTATE_IGNORE_READS_AND_WRITES_BEGIN

#define _Py_ANNOTATE_IGNORE_READS_AND_WRITES_BEGIN ( )

◆ _Py_ANNOTATE_IGNORE_READS_AND_WRITES_END

#define _Py_ANNOTATE_IGNORE_READS_AND_WRITES_END ( )

◆ _Py_ANNOTATE_IGNORE_SYNC_BEGIN

#define _Py_ANNOTATE_IGNORE_SYNC_BEGIN ( )

◆ _Py_ANNOTATE_IGNORE_SYNC_END

#define _Py_ANNOTATE_IGNORE_SYNC_END ( )

◆ _Py_ANNOTATE_ENABLE_RACE_DETECTION

#define _Py_ANNOTATE_ENABLE_RACE_DETECTION (   enable)

◆ _Py_ANNOTATE_NO_OP

#define _Py_ANNOTATE_NO_OP (   arg)

◆ _Py_ANNOTATE_FLUSH_STATE

#define _Py_ANNOTATE_FLUSH_STATE ( )

◆ _Py_ANNOTATE_UNPROTECTED_READ

#define _Py_ANNOTATE_UNPROTECTED_READ (   x)

◆ _Py_ANNOTATE_BENIGN_RACE_STATIC

#define _Py_ANNOTATE_BENIGN_RACE_STATIC (   static_var,
  description 
)

Function Documentation

◆ AnnotateRWLockCreate()

void AnnotateRWLockCreate ( const char *  file,
int  line,
const volatile void *  lock 
)

◆ AnnotateRWLockDestroy()

void AnnotateRWLockDestroy ( const char *  file,
int  line,
const volatile void *  lock 
)

◆ AnnotateRWLockAcquired()

void AnnotateRWLockAcquired ( const char *  file,
int  line,
const volatile void *  lock,
long  is_w 
)

◆ AnnotateRWLockReleased()

void AnnotateRWLockReleased ( const char *  file,
int  line,
const volatile void *  lock,
long  is_w 
)

◆ AnnotateBarrierInit()

void AnnotateBarrierInit ( const char *  file,
int  line,
const volatile void *  barrier,
long  count,
long  reinitialization_allowed 
)

◆ AnnotateBarrierWaitBefore()

void AnnotateBarrierWaitBefore ( const char *  file,
int  line,
const volatile void *  barrier 
)

◆ AnnotateBarrierWaitAfter()

void AnnotateBarrierWaitAfter ( const char *  file,
int  line,
const volatile void *  barrier 
)

◆ AnnotateBarrierDestroy()

void AnnotateBarrierDestroy ( const char *  file,
int  line,
const volatile void *  barrier 
)

◆ AnnotateCondVarWait()

void AnnotateCondVarWait ( const char *  file,
int  line,
const volatile void *  cv,
const volatile void *  lock 
)

◆ AnnotateCondVarSignal()

void AnnotateCondVarSignal ( const char *  file,
int  line,
const volatile void *  cv 
)

◆ AnnotateCondVarSignalAll()

void AnnotateCondVarSignalAll ( const char *  file,
int  line,
const volatile void *  cv 
)

◆ AnnotatePublishMemoryRange()

void AnnotatePublishMemoryRange ( const char *  file,
int  line,
const volatile void *  address,
long  size 
)

◆ AnnotateUnpublishMemoryRange()

void AnnotateUnpublishMemoryRange ( const char *  file,
int  line,
const volatile void *  address,
long  size 
)

◆ AnnotatePCQCreate()

void AnnotatePCQCreate ( const char *  file,
int  line,
const volatile void *  pcq 
)

◆ AnnotatePCQDestroy()

void AnnotatePCQDestroy ( const char *  file,
int  line,
const volatile void *  pcq 
)

◆ AnnotatePCQPut()

void AnnotatePCQPut ( const char *  file,
int  line,
const volatile void *  pcq 
)

◆ AnnotatePCQGet()

void AnnotatePCQGet ( const char *  file,
int  line,
const volatile void *  pcq 
)

◆ AnnotateNewMemory()

void AnnotateNewMemory ( const char *  file,
int  line,
const volatile void *  address,
long  size 
)

◆ AnnotateExpectRace()

void AnnotateExpectRace ( const char *  file,
int  line,
const volatile void *  address,
const char *  description 
)

◆ AnnotateBenignRace()

void AnnotateBenignRace ( const char *  file,
int  line,
const volatile void *  address,
const char *  description 
)

◆ AnnotateBenignRaceSized()

void AnnotateBenignRaceSized ( const char *  file,
int  line,
const volatile void *  address,
long  size,
const char *  description 
)

◆ AnnotateMutexIsUsedAsCondVar()

void AnnotateMutexIsUsedAsCondVar ( const char *  file,
int  line,
const volatile void *  mu 
)

◆ AnnotateTraceMemory()

void AnnotateTraceMemory ( const char *  file,
int  line,
const volatile void *  arg 
)

◆ AnnotateThreadName()

void AnnotateThreadName ( const char *  file,
int  line,
const char *  name 
)

◆ AnnotateIgnoreReadsBegin()

void AnnotateIgnoreReadsBegin ( const char *  file,
int  line 
)

◆ AnnotateIgnoreReadsEnd()

void AnnotateIgnoreReadsEnd ( const char *  file,
int  line 
)

◆ AnnotateIgnoreWritesBegin()

void AnnotateIgnoreWritesBegin ( const char *  file,
int  line 
)

◆ AnnotateIgnoreWritesEnd()

void AnnotateIgnoreWritesEnd ( const char *  file,
int  line 
)

◆ AnnotateEnableRaceDetection()

void AnnotateEnableRaceDetection ( const char *  file,
int  line,
int  enable 
)

◆ AnnotateNoOp()

void AnnotateNoOp ( const char *  file,
int  line,
const volatile void *  arg 
)

◆ AnnotateFlushState()

void AnnotateFlushState ( const char *  file,
int  line 
)

◆ RunningOnValgrind()

int RunningOnValgrind ( void  )