PPL Logo

conv-core/threads.C File Reference

Go to the source code of this file.

Data Structures

struct  CthThreadBase
struct  CthThreadStruct
struct  CthProcInfo_s
struct  CthThreadStruct
struct  CthThreadStruct
struct  CthThreadStruct
struct  CthThreadStruct
struct  CthThreadStruct

Typedefs

typedef struct CthProcInfo_sCthProcInfo
typedef CthThreadthreadTable
typedef ucontext_t uJcontext_t
typedef void(* uJcontext_fn_t )(void)

Functions

CLINKAGE void * memalign (size_t align, size_t size) CMK_THROW
int CmiThreadIs (int flag)
CthThreadTokenCthGetToken (CthThread t)
 CpvStaticDeclare (int, Cth_serialNo)
int CthAliasCreate (int stackSize)
 Create an aliasable area of this size.
void CthAliasFree (int fd)
void CthAliasEnable (CthThreadBase *t)
 CthCpvStatic (CthThread, CthCurrent)
 CthCpvDeclare (char *, CthData)
 CthCpvStatic (size_t, CthDatasize)
void CthSetThreadID (CthThread th, int a, int b, int c)
CmiObjIdCthGetThreadID (CthThread th)
char * CthGetData (CthThread t)
static void CthFixData (CthThread t)
size_t CthRegister (size_t size)
 Allocate another size bytes of thread-local storage, and return the offset into the thread storage buffer.
void CthRegistered (size_t maxOffset)
 Make sure we have room to store up to at least maxOffset bytes of thread-local storage.
 CthCpvStatic (int, _defaultStackSize)
void CthSetSerialNo (CthThread t, int no)
static void CthThreadBaseInit (CthThreadBase *th)
static void * CthAllocateStack (CthThreadBase *th, int *stackSize, int useMigratable)
static void CthThreadBaseFree (CthThreadBase *th)
 CthCpvStatic (tlsseg_t, _ctgTLS)
void CtgInstallTLS (void *cur, void *next)
 for TLS globals
void CtgInstallMainThreadTLS (void *cur)
void CtgInstallCthTLS (void *cur, void *next)
void CmiDisableTLS (void)
void CmiEnableTLS (void)
static void CthBaseInit (char **argv)
int CthImplemented (void)
CthThread CthSelf (void)
void CthPupBase (pup_er p, CthThreadBase *t, int useMigratable)
static void CthThreadFinished (CthThread t)
void CthSetSuspendable (CthThread t, int val)
int CthIsSuspendable (CthThread t)
void CthSetNext (CthThread t, CthThread v)
CthThread CthGetNext (CthThread t)
void CthSetPrev (CthThread t, CthThread v)
void CthSetEventInfo (CthThread t, int event, int srcPE)
static void CthNoStrategy (void)
void CthSetStrategy (CthThread t, CthAwkFn awkfn, CthThFn chsfn)
int CthScheduled (CthThread t)
void CthScheduledDecrement ()
static void CthBaseResume (CthThread t)
void CthSwitchThread (CthThread t)
 switch the thread to t
void CthCheckThreadSanity (void)
void CthSuspend (void)
void CthAwaken (CthThread th)
void CthYield (void)
void CthAwakenPrio (CthThread th, int s, int pb, unsigned int *prio)
void CthYieldPrio (int s, int pb, unsigned int *prio)
void CthAddListener (CthThread t, struct CthThreadListener *l)
 This listener is about to begin receiving suspend and resume events for this thread.
int CthMigratable (void)
CthThread CthPup (pup_er p, CthThread t)
 CthCpvDeclare (CthProcInfo, CthProc)
static void CthThreadInit (CthThread t, CthVoidFn fn, void *arg)
static void CthThreadFree (CthThread t)
void CthFree (CthThread t)
void CthDummy (void)
void CthInit (char **argv)
static void CthOnly (CthThread t, void *dum1, void *dum2)
size_t CthStackOffset (CthThread t, char *p)
char * CthPointer (CthThread t, size_t pos)
static void CthResume1 (qt_t *sp, CthProcInfo proc, CthThread t)
void CthResume (CthThread t)
CthThread CthCreate (CthVoidFn fn, void *arg, int size)
CthThread CthCreateMigratable (CthVoidFn fn, void *arg, int size)
 CthCpvStatic (CthThread, CthPrevious)
 CthCpvStatic (int, tablesize)
 CthCpvStatic (threadTable, exitThreads)
 CthCpvStatic (int, nExit)
static void CthThreadInit (CthThread t)
static void CthClearThreads (void)
void CthFiberBlock (CthThread t)
VOID CALLBACK FiberSetUp (PVOID fiberData)
 CthCpvStatic (pthread_mutex_t, sched_mutex)
 The sched_mutex is the current token of execution.
static void * CthOnly (void *arg)
static CMI_FORCE_INLINE int setJcontext (const uJcontext_t *ucp)
static CMI_FORCE_INLINE int swapJcontext (uJcontext_t *oucp, const uJcontext_t *ucp)
static CMI_FORCE_INLINE void makeJcontext (uJcontext_t *ucp, uJcontext_fn_t func, int argc, void *a1, void *a2)
 CpvStaticDeclare (CthThread, doomedThreadPool)
void CthStartThread (CmiUInt4 fn1, CmiUInt4 fn2, CmiUInt4 arg1, CmiUInt4 arg2)
void CthStartThread (transfer_t arg)
void CthStartThread (qt_userf_t fn, void *arg)
int ptrDiffLen (const void *a, const void *b)
static CthThread CthCreateInner (CthVoidFn fn, void *arg, int size, int migratable)
void setProtection (char *, char *, int, int)
static CthThread CthThreadInit (void)
static void * CthAbortHelp (qt_t *sp, CthThread old, void *null)
static void * CthBlockHelp (qt_t *sp, CthThread old, void *null)
static void CthOnly (void *arg, void *vt, qt_userf_t fn)
void CthPrintThdStack (CthThread t)
void CthTraceResume (CthThread t)
void CthPrintThdMagic (CthThread t)
void * CmiIsomallocMallocForThread (CthThread th, size_t nBytes)
void * CmiIsomallocMallocAlignForThread (CthThread th, size_t align, size_t nBytes)

Variables

static int CmiThreadIs_flag = 0
CthThreadBase_curMappedStack = 0
 CthAliasEnable brings this thread's stack into memory.
static tlsseg_t _oldtlsseg [128] = {0}
static int tlsseg_ptr = -1


Typedef Documentation

typedef struct CthProcInfo_s* CthProcInfo

Definition at line 995 of file threads.C.

Definition at line 1224 of file threads.C.

typedef ucontext_t uJcontext_t

Definition at line 1621 of file threads.C.

typedef void(* uJcontext_fn_t)(void)

Definition at line 1622 of file threads.C.


Function Documentation

int CmiThreadIs ( int  flag  ) 

Definition at line 209 of file threads.C.

References CmiThreadIs_flag.

Referenced by checkAddress(), and meta_malloc().

Here is the caller graph for this function:

CthThreadToken* CthGetToken ( CthThread  t  ) 

Definition at line 219 of file threads.C.

Referenced by CthResumeSchedulingThread().

Here is the caller graph for this function:

CpvStaticDeclare ( int  ,
Cth_serialNo   
)

int CthAliasCreate ( int  stackSize  ) 

Create an aliasable area of this size.

Returns alias handle.

Definition at line 261 of file threads.C.

References CmiAbort(), fd, and Ck::IO::write().

Referenced by CthAllocateStack().

Here is the call graph for this function:

Here is the caller graph for this function:

void CthAliasFree ( int  fd  ) 

Definition at line 281 of file threads.C.

References Ck::IO::close().

Referenced by CthThreadBaseFree().

Here is the call graph for this function:

Here is the caller graph for this function:

void CthAliasEnable ( CthThreadBase t  ) 

Definition at line 294 of file threads.C.

References CmiAbort(), CthThreadBase::isMigratable, PUP::s, CthThreadBase::stack, and CthThreadBase::stacksize.

Referenced by CthBaseResume(), CthCreateInner(), and CthPupBase().

Here is the call graph for this function:

Here is the caller graph for this function:

CthCpvStatic ( CthThread  ,
CthCurrent   
)

CthCpvDeclare ( char *  ,
CthData   
)

CthCpvStatic ( size_t  ,
CthDatasize   
)

void CthSetThreadID ( CthThread  th,
int  a,
int  b,
int  c 
)

Definition at line 330 of file threads.C.

Referenced by CkMigratable::CkAddThreadListeners(), Group::CkAddThreadListeners(), and Chare::CkAddThreadListeners().

Here is the caller graph for this function:

CmiObjId* CthGetThreadID ( CthThread  th  ) 

Definition at line 338 of file threads.C.

Referenced by CthEnqueueSuspendedStealableThread(), and traceThreadListener_resume().

Here is the caller graph for this function:

char* CthGetData ( CthThread  t  ) 

Definition at line 343 of file threads.C.

static void CthFixData ( CthThread  t  )  [inline, static]

Definition at line 352 of file threads.C.

References data, and realloc().

Referenced by CthBaseResume(), CthRegister(), CthRegistered(), and CthThreadBaseInit().

Here is the call graph for this function:

Here is the caller graph for this function:

size_t CthRegister ( size_t  size  ) 

Allocate another size bytes of thread-local storage, and return the offset into the thread storage buffer.

Definition at line 369 of file threads.C.

References CthFixData(), and CthThreadBase::data.

Referenced by Cpthread_key_create().

Here is the call graph for this function:

Here is the caller graph for this function:

void CthRegistered ( size_t  maxOffset  ) 

Make sure we have room to store up to at least maxOffset bytes of thread-local storage.

Definition at line 388 of file threads.C.

References CthFixData(), and CthThreadBase::data.

Here is the call graph for this function:

CthCpvStatic ( int  ,
_defaultStackSize   
)

void CthSetSerialNo ( CthThread  t,
int  no 
)

Definition at line 400 of file threads.C.

static void CthThreadBaseInit ( CthThreadBase th  )  [static]

static void* CthAllocateStack ( CthThreadBase th,
int stackSize,
int  useMigratable 
) [static]

static void CthThreadBaseFree ( CthThreadBase th  )  [static]

CthCpvStatic ( tlsseg_t  ,
_ctgTLS   
)

void CtgInstallTLS ( void *  cur,
void *  next 
)

for TLS globals

Definition at line 529 of file threads.C.

References switchTLS().

Here is the call graph for this function:

void CtgInstallMainThreadTLS ( void *  cur  ) 

Definition at line 538 of file threads.C.

References switchTLS().

Here is the call graph for this function:

void CtgInstallCthTLS ( void *  cur,
void *  next 
)

Definition at line 543 of file threads.C.

References switchTLS().

Here is the call graph for this function:

void CmiDisableTLS ( void   ) 

Definition at line 551 of file threads.C.

References switchTLS(), and tlsseg_ptr.

Referenced by FTN_NAME().

Here is the call graph for this function:

Here is the caller graph for this function:

void CmiEnableTLS ( void   ) 

Definition at line 558 of file threads.C.

References switchTLS(), and tlsseg_ptr.

Referenced by FTN_NAME().

Here is the call graph for this function:

Here is the caller graph for this function:

static void CthBaseInit ( char **  argv  )  [static]

Definition at line 572 of file threads.C.

References CmiGetArgStringDesc(), CmiReadSize(), CmiThreadIs_flag, CmiTLSInit(), and currentTLS().

Referenced by CthInit().

Here is the call graph for this function:

Here is the caller graph for this function:

int CthImplemented ( void   ) 

Definition at line 604 of file threads.C.

CthThread CthSelf ( void   ) 

void CthPupBase ( pup_er  p,
CthThreadBase t,
int  useMigratable 
)

static void CthThreadFinished ( CthThread  t  )  [static]

Definition at line 715 of file threads.C.

References CthSuspend().

Referenced by CthOnly(), CthStartThread(), and FiberSetUp().

Here is the call graph for this function:

Here is the caller graph for this function:

void CthSetSuspendable ( CthThread  t,
int  val 
)

Definition at line 724 of file threads.C.

int CthIsSuspendable ( CthThread  t  ) 

Definition at line 725 of file threads.C.

void CthSetNext ( CthThread  t,
CthThread  v 
)

Definition at line 727 of file threads.C.

Referenced by CfutureWait(), CkWaitFutureID(), CthResumeSchedulingThread(), and CthResumeStealableThread().

Here is the caller graph for this function:

CthThread CthGetNext ( CthThread  t  ) 

Definition at line 728 of file threads.C.

Referenced by CfutureAwaken(), CthSuspendSchedulingThread(), CthSuspendStealableThread(), and setFuture().

Here is the caller graph for this function:

void CthSetPrev ( CthThread  t,
CthThread  v 
)

Definition at line 730 of file threads.C.

Referenced by CthResumeNormalThread(), CthResumeNormalThreadDebug(), CthResumeSchedulingThread(), CthResumeStealableThread(), and CthSuspend().

Here is the caller graph for this function:

static void CthNoStrategy ( void   )  [static]

Definition at line 738 of file threads.C.

References CmiAbort().

Referenced by CthAwaken(), CthAwakenPrio(), and CthSuspend().

Here is the call graph for this function:

Here is the caller graph for this function:

void CthSetStrategy ( CthThread  t,
CthAwkFn  awkfn,
CthThFn  chsfn 
)

Definition at line 743 of file threads.C.

Referenced by CthSchedInit(), CthSetStrategyDefault(), CthSetStrategySuspendedWorkStealing(), CthSetStrategyWorkStealing(), and CthSuspendSchedulingThread().

Here is the caller graph for this function:

int CthScheduled ( CthThread  t  )  [inline]

Definition at line 750 of file threads.C.

void CthScheduledDecrement ( void   ) 

Definition at line 755 of file threads.C.

References CmiAbort(), CmiMyRank(), CmiWallTimer(), CthSelf(), and memory_order_release.

Referenced by CthResumeNormalThread(), CthResumeNormalThreadDebug(), CthResumeSchedulingThread(), CthResumeStealableThread(), and CthSuspend().

Here is the call graph for this function:

Here is the caller graph for this function:

static void CthBaseResume ( CthThread  t  )  [inline, static]

Definition at line 775 of file threads.C.

References CthAliasEnable(), CthFixData(), PUP::l, CthThreadListener::next, and CthThreadListener::resume.

Referenced by CthResume(), CthResume1(), and CthSwitchThread().

Here is the call graph for this function:

Here is the caller graph for this function:

void CthSwitchThread ( CthThread  t  ) 

switch the thread to t

Definition at line 790 of file threads.C.

References CthBaseResume().

Here is the call graph for this function:

void CthCheckThreadSanity ( void   ) 

Definition at line 801 of file threads.C.

References CmiAbort(), CthThreadBase::magic, CthThreadBase::stack, and CthThreadBase::stacksize.

Referenced by CthSuspend().

Here is the call graph for this function:

Here is the caller graph for this function:

void CthSuspend ( void   ) 

void CthAwaken ( CthThread  th  ) 

void CthYield ( void   ) 

void CthAwakenPrio ( CthThread  th,
int  s,
int  pb,
unsigned int prio 
)

Definition at line 919 of file threads.C.

References CthNoStrategy(), and traceAwaken().

Referenced by CthYieldPrio().

Here is the call graph for this function:

Here is the caller graph for this function:

void CthYieldPrio ( int  s,
int  pb,
unsigned int prio 
)

Definition at line 934 of file threads.C.

References CthAwakenPrio(), and CthSuspend().

Here is the call graph for this function:

void CthAddListener ( CthThread  th,
struct CthThreadListener l 
)

This listener is about to begin receiving suspend and resume events for this thread.

"suspend", "resume", "free", and "data" fields must all already be set. When this thread exits, l->free will be called on this listener, which should deallocate the listener memory.

Definition at line 943 of file threads.C.

References CthThreadListener::next, p, and CthThreadListener::thread.

Referenced by CkMigratable::CkAddThreadListeners(), and TraceProjections::traceAddThreadListeners().

Here is the caller graph for this function:

int CthMigratable ( void   ) 

Definition at line 1008 of file threads.C.

Referenced by TCharm::migrateTo(), and TCHARM_Migrate().

Here is the caller graph for this function:

CthThread CthPup ( pup_er  p,
CthThread  t 
)

Definition at line 1013 of file threads.C.

References CmiAbort(), CthFree(), CthPupBase(), malloc(), pup_bytes(), pup_isDeleting(), and pup_isUnpacking().

Referenced by TCharm::pupThread().

Here is the call graph for this function:

Here is the caller graph for this function:

CthCpvDeclare ( CthProcInfo  ,
CthProc   
)

static void CthThreadInit ( CthThread  t,
CthVoidFn  fn,
void *  arg 
) [static]

Definition at line 1045 of file threads.C.

References CthThreadStruct::base, CthThreadBaseInit(), CthThreadStruct::savedptr, CthThreadStruct::savedsize, CthThreadStruct::savedstack, CthThreadStruct::stacklen, CthThreadStruct::startarg, and CthThreadStruct::startfn.

Referenced by CthCreate(), CthCreateInner(), and CthInit().

Here is the call graph for this function:

Here is the caller graph for this function:

static void CthThreadFree ( CthThread  t  )  [static]

Definition at line 1056 of file threads.C.

References CthThreadStruct::base, CthThreadBaseFree(), free(), and CthThreadStruct::savedstack.

Referenced by CthAbortHelp(), CthClearThreads(), CthFiberBlock(), CthFree(), and CthResume1().

Here is the call graph for this function:

Here is the caller graph for this function:

void CthFree ( CthThread  t  ) 

Definition at line 1063 of file threads.C.

References CthThreadStruct::base, CthClearThreads(), CthSelf(), CthThreadFree(), CthThreadBase::exiting, free(), and malloc().

Referenced by TCharm::clear(), CpmThread3(), Cpthread_exit(), CthPup(), and TCharm::~TCharm().

Here is the call graph for this function:

Here is the caller graph for this function:

void CthDummy ( void   ) 

Definition at line 1075 of file threads.C.

Referenced by CthInit(), and CthResume1().

Here is the caller graph for this function:

void CthInit ( char **  argv  ) 

Definition at line 1077 of file threads.C.

References CmiThreadIs_flag, CthBaseInit(), CthDummy(), CthThreadInit(), malloc(), p, size_t, CthProcInfo_s::stackbase, CthProcInfo_s::switchbuf, CthProcInfo_s::switchbuf_sp, and PUP::t.

Referenced by ConverseRunPE().

Here is the call graph for this function:

Here is the caller graph for this function:

static void CthOnly ( CthThread  t,
void *  dum1,
void *  dum2 
) [static]

Definition at line 1112 of file threads.C.

References CthThreadFinished(), CthThreadStruct::startarg, and CthThreadStruct::startfn.

Referenced by CthResume1().

Here is the call graph for this function:

Here is the caller graph for this function:

size_t CthStackOffset ( CthThread  t,
char *  p 
)

Definition at line 1121 of file threads.C.

References PUP::s, CthThreadStruct::stack, and CthProcInfo_s::stackbase.

Referenced by TCharm::UserData::UserData().

Here is the caller graph for this function:

char* CthPointer ( CthThread  t,
size_t  pos 
)

Definition at line 1127 of file threads.C.

References p, CthThreadStruct::savedsize, CthThreadStruct::savedstack, CthThreadStruct::stack, and CthProcInfo_s::stackbase.

Referenced by TCharm::UserData::getData(), and TCharm::UserData::pup().

Here is the caller graph for this function:

static void CthResume1 ( qt_t *  sp,
CthProcInfo  proc,
CthThread  t 
) [static]

Definition at line 1145 of file threads.C.

References CthThreadStruct::base, CthBaseResume(), CthDummy(), CthOnly(), CthThreadFree(), CthThreadBase::exiting, free(), malloc(), CthThreadStruct::savedptr, CthThreadStruct::savedsize, CthThreadStruct::savedstack, size_t, CthProcInfo_s::stackbase, and CthThreadStruct::stacklen.

Referenced by CthResume().

Here is the call graph for this function:

Here is the caller graph for this function:

void CthResume ( CthThread  t  ) 

CthThread CthCreate ( CthVoidFn  fn,
void *  arg,
int  size 
)

Definition at line 1191 of file threads.C.

References CmiAbort(), CthThreadInit(), CthThreadStruct::fiber, FiberSetUp(), and malloc().

Referenced by CPathGetSingle(), CpdPythonGroup::cpdCheck(), CpmThread2(), CpmThreadSize2(), Cpthread_create(), CthCreateMigratable(), CthSuspendSchedulingThread(), PythonObject::execute(), and TCharm::TCharm().

Here is the call graph for this function:

Here is the caller graph for this function:

CthThread CthCreateMigratable ( CthVoidFn  fn,
void *  arg,
int  size 
)

Definition at line 1198 of file threads.C.

References CthCreate().

Referenced by TCharm::TCharm().

Here is the call graph for this function:

Here is the caller graph for this function:

CthCpvStatic ( CthThread  ,
CthPrevious   
)

CthCpvStatic ( int  ,
tablesize   
)

CthCpvStatic ( threadTable  ,
exitThreads   
)

CthCpvStatic ( int  ,
nExit   
)

static void CthThreadInit ( CthThread  t  )  [static]

Definition at line 1229 of file threads.C.

References CthThreadStruct::base, and CthThreadBaseInit().

Here is the call graph for this function:

static void CthClearThreads ( void   )  [static]

Definition at line 1270 of file threads.C.

References CthThreadFree(), PUP::m, n, and p.

Referenced by CthFree(), and FiberSetUp().

Here is the call graph for this function:

Here is the caller graph for this function:

void CthFiberBlock ( CthThread  t  ) 

Definition at line 1329 of file threads.C.

References CthThreadFree(), and CthThreadStruct::fiber.

Referenced by CthResume().

Here is the call graph for this function:

Here is the caller graph for this function:

VOID CALLBACK FiberSetUp ( PVOID  fiberData  ) 

Definition at line 1359 of file threads.C.

References CthClearThreads(), CthSelf(), and CthThreadFinished().

Referenced by CthCreate().

Here is the call graph for this function:

Here is the caller graph for this function:

CthCpvStatic ( pthread_mutex_t  ,
sched_mutex   
)

The sched_mutex is the current token of execution.

Only the running thread holds this lock; all other threads have released the lock and are waiting on their condition variable.

static void* CthOnly ( void *  arg  )  [static]

Definition at line 1501 of file threads.C.

References CthThreadStruct::arg, CthThreadStruct::cond, CthThreadStruct::creator, CthThreadFinished(), CthThreadStruct::fn, and CthThreadStruct::inited.

Here is the call graph for this function:

static CMI_FORCE_INLINE int setJcontext ( const uJcontext_t ucp  )  [static]

Definition at line 1629 of file threads.C.

Referenced by setJcontext(), and swapJcontext().

Here is the caller graph for this function:

static CMI_FORCE_INLINE int swapJcontext ( uJcontext_t oucp,
const uJcontext_t ucp 
) [static]

Definition at line 1633 of file threads.C.

Referenced by setJcontext().

Here is the caller graph for this function:

static CMI_FORCE_INLINE void makeJcontext ( uJcontext_t ucp,
uJcontext_fn_t  func,
int  argc,
void *  a1,
void *  a2 
) [static]

Definition at line 1637 of file threads.C.

Referenced by CthCreateInner().

Here is the caller graph for this function:

CpvStaticDeclare ( CthThread  ,
doomedThreadPool   
)

void CthStartThread ( CmiUInt4  fn1,
CmiUInt4  fn2,
CmiUInt4  arg1,
CmiUInt4  arg2 
)

Definition at line 1766 of file threads.C.

References CmiWallTimer(), CthSelf(), and CthThreadFinished().

Referenced by CthCreateInner().

Here is the call graph for this function:

Here is the caller graph for this function:

void CthStartThread ( transfer_t  arg  ) 

Definition at line 1777 of file threads.C.

References uFcontext_t::arg, CthSelf(), CthThreadFinished(), data_t::data, transfer_t::data, data, transfer_t::fctx, data_t::from, and uFcontext_t::func.

Here is the call graph for this function:

void CthStartThread ( qt_userf_t  fn,
void *  arg 
)

Definition at line 1787 of file threads.C.

References CthSelf(), and CthThreadFinished().

Here is the call graph for this function:

int ptrDiffLen ( const void *  a,
const void *  b 
)

Definition at line 1797 of file threads.C.

Referenced by CthCreateInner().

Here is the caller graph for this function:

static CthThread CthCreateInner ( CthVoidFn  fn,
void *  arg,
int  size,
int  migratable 
) [static]

static CthThread CthThreadInit ( void   )  [static]

Definition at line 2011 of file threads.C.

References CthThreadStruct::base, CthThreadBaseInit(), malloc(), CthThreadStruct::protect, and CthThreadStruct::protlen.

Here is the call graph for this function:

static void* CthAbortHelp ( qt_t *  sp,
CthThread  old,
void *  null 
) [static]

Definition at line 2056 of file threads.C.

References CthThreadFree().

Here is the call graph for this function:

static void* CthBlockHelp ( qt_t *  sp,
CthThread  old,
void *  null 
) [static]

Definition at line 2062 of file threads.C.

References CthThreadStruct::stackp.

static void CthOnly ( void *  arg,
void *  vt,
qt_userf_t  fn 
) [static]

Definition at line 2092 of file threads.C.

References CthSelf(), and CthThreadFinished().

Here is the call graph for this function:

void CthPrintThdStack ( CthThread  t  ) 

Definition at line 2178 of file threads.C.

References CthThreadStruct::base, CmiPrintf(), CthThreadBase::stack, and CthThreadStruct::stackp.

Here is the call graph for this function:

void CthTraceResume ( CthThread  t  ) 

Definition at line 2210 of file threads.C.

References CthThreadStruct::base, CthThreadBase::tid, and traceResume().

Referenced by CthResumeNormalThread(), CthResumeNormalThreadDebug(), CthResumeSchedulingThread(), CthResumeStealableThread(), and PUPmarshall().

Here is the call graph for this function:

Here is the caller graph for this function:

void CthPrintThdMagic ( CthThread  t  ) 

Definition at line 2216 of file threads.C.

References CthThreadStruct::base, CmiPrintf(), and CthThreadBase::magic.

Here is the call graph for this function:

void* CmiIsomallocMallocForThread ( CthThread  th,
size_t  nBytes 
)

Definition at line 2220 of file threads.C.

References CmiIsomallocBlockListMalloc(), CmiIsomallocBlockListNew(), and CmiIsomallocEnabled().

Referenced by CtgGlobalStruct::allocate().

Here is the call graph for this function:

Here is the caller graph for this function:

void* CmiIsomallocMallocAlignForThread ( CthThread  th,
size_t  align,
size_t  nBytes 
)

Definition at line 2227 of file threads.C.

References CmiIsomallocBlockListMallocAlign(), CmiIsomallocBlockListNew(), and CmiIsomallocEnabled().

Referenced by allocNewTLSSeg().

Here is the call graph for this function:

Here is the caller graph for this function:


Variable Documentation

int CmiThreadIs_flag = 0 [static]

Definition at line 207 of file threads.C.

Referenced by CmiThreadIs(), CthBaseInit(), and CthInit().

CthAliasEnable brings this thread's stack into memory.

You must call it before accessing the thread stack, for example, before running, packing, or unpacking the stack data.

Definition at line 293 of file threads.C.

tlsseg_t _oldtlsseg[128] = {0} [static]

Definition at line 549 of file threads.C.

int tlsseg_ptr = -1 [static]

Definition at line 550 of file threads.C.

Referenced by CmiDisableTLS(), and CmiEnableTLS().


Generated on Mon Sep 21 08:02:52 2020 for Charm++ by  doxygen 1.5.5