23#include "RConfigure.h" 
  142   jp->fRc = 
jp->fT->Join(
jp->fRet);
 
 
  177      if (
r == 0 || 
r == 1) {
 
 
  291      Info(
"TThread::TThread", 
"TThread attached to running thread");
 
 
  373   SetComment(
"Constructor: MainInternalMutex Locking");
 
  375   SetComment(
"Constructor: MainInternalMutex Locked");
 
 
  394      Info(
"TThread::~TThread", 
"thread deleted");
 
  398   SetComment(
"Destructor: MainInternalMutex Locking");
 
  400   SetComment(
"Destructor: MainInternalMutex Locked");
 
 
  427         th->
Info(
"TThread::Delete", 
"deleting thread");
 
 
  516      Error(
"Join", 
"thread not running");
 
  521      Error(
"Join", 
"cannot join detached thread");
 
 
  542      ::Error(
"TThread::Join", 
"cannot find thread 0x%lx", 
jid);
 
 
  582      Info(
"TThread::Run", 
"thread run requested");
 
 
  597         Warning(
"TThread::Kill", 
"thread is not running");
 
 
  616         ::Warning(
"TThread::Kill(Long_t)", 
"thread 0x%lx not found", 
id);
 
 
  632         ::Warning(
"TThread::Kill(const char*)", 
"thread %s not found", 
name);
 
 
  737         th->
Info(
"TThread::AfterCancel", 
"thread is canceled");
 
  739      ::Error(
"TThread::AfterCancel", 
"zero thread pointer passed");
 
 
  817      th->
Info(
"TThread::Function", 
"thread is running");
 
  836      th->
Info(
"TThread::Function", 
"thread has finished");
 
 
  852      ::Info(
"TThread::Ps", 
"no threads have been created");
 
  863   printf(
"     Thread                   State\n");
 
  881         default:               
printf(
"Invalid    ");
 
  883      if (
l->fComment[0]) 
printf(
"  // %s", 
l->fComment);
 
 
  924   Int_t buf_size = 2048;
 
  928   buf = 
new char[buf_size];
 
  933   if (
n == -1 || 
n >= buf_size) {
 
  942   arr[1] = (
void*) buf;
 
 
  961   Int_t buf_size = 2048;
 
  965   buf = 
new char[buf_size];
 
  970   if (
n == -1 || 
n >= buf_size) {
 
  977      char *
buf1 = 
new char[bufferSize];
 
  986   arr[2] = (
void*) location;
 
  994      ::GetErrorHandler()(level, 
kTRUE, location, 
bp);
 
 
 1007   char *
loc = 
nullptr;
 
 1011      loc = 
new char[bufferSize];
 
 1015      loc = 
new char[bufferSize];
 
 
 1044      th->
SetComment(
"XARequest: XActMutex Locking");
 
 1046      th->
SetComment(
"XARequest: XActMutex Locked");
 
 
 1083   char const acts[] = 
"PRTF CUPD CANV CDEL PDCD METH ERRO";
 
 1099            const char *location = (
const char*)
fgXArr[2];
 
 1112            void (*fFuncPtr)(
void*);
 
 1125               cmd.Form(
"((TCanvas *)0x%zx)->Constructor();",(
size_t)
fgXArr[1]);
 
 1134               cmd.Form(
"((TCanvas *)0x%zx)->Constructor((char*)0x%zx,(char*)0x%zx,*((Int_t*)(0x%zx)));",(
size_t)
fgXArr[1],(size_t)
fgXArr[2],(
size_t)
fgXArr[3],(size_t)
fgXArr[4]);
 
 1143               cmd.Form(
"((TCanvas *)0x%zx)->Constructor((char*)0x%zx,(char*)0x%zx,*((Int_t*)(0x%zx)),*((Int_t*)(0x%zx)));",(
size_t)
fgXArr[1],(size_t)
fgXArr[2],(
size_t)
fgXArr[3],(size_t)
fgXArr[4],(
size_t)
fgXArr[5]);
 
 1155               cmd.Form(
"((TCanvas *)0x%zx)->Constructor((char*)0x%zx,(char*)0x%zx,*((Int_t*)(0x%zx)),*((Int_t*)(0x%zx)),*((Int_t*)(0x%zx)),*((Int_t*)(0x%zx)));",(
size_t)
fgXArr[1],(size_t)
fgXArr[2],(
size_t)
fgXArr[3],(size_t)
fgXArr[4],(
size_t)
fgXArr[5],(size_t)
fgXArr[6],(
size_t)
fgXArr[7]);
 
 1164         cmd.Form(
"((TCanvas *)0x%zx)->Destructor();",(
size_t)
fgXArr[1]);
 
 1180         ::Error(
"TThread::XAction", 
"wrong case");
 
 
bool Bool_t
Boolean (0=false, 1=true) (bool)
 
int Int_t
Signed integer 4 bytes (int)
 
long Longptr_t
Integer large enough to hold a pointer (platform-dependent)
 
unsigned long ULong_t
Unsigned long integer 4 bytes (unsigned long). Size depends on architecture.
 
long Long_t
Signed long integer 4 bytes (long). Size depends on architecture.
 
unsigned int UInt_t
Unsigned integer 4 bytes (unsigned int)
 
float Float_t
Float 4 bytes (float)
 
R__EXTERN TApplication * gApplication
 
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
 
Int_t gErrorAbortLevel
non-ignored errors with level equal or above this value will call abort(). Default is kSysError+1.
 
ErrorHandlerFunc_t GetErrorHandler()
Returns the current error handler function.
 
constexpr Int_t kSysError
 
winID h TVirtualViewer3D TVirtualGLPainter p
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t r
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize id
 
R__EXTERN TVirtualMutex * gInterpreterMutex
 
R__EXTERN TInterpreter * gCling
 
Int_t gDebug
Global variable setting the debug level. Set to 0 to disable, increase it in steps of 1 to increase t...
 
R__EXTERN TVirtualMutex * gROOTMutex
 
R__EXTERN TSystem * gSystem
 
R__EXTERN TThreadFactory * gThreadFactory
 
R__EXTERN void **(* gThreadTsd)(void *, Int_t)
 
static TMutex * gMainInternalMutex
 
static void ThreadInternalUnLock()
 
static void CINT_alloc_lock()
 
static TThreadTearDownGuard gTearDownGuard
 
static Bool_t fgIsTearDown(kFALSE)
 
static void ThreadInternalLock()
 
void ROOT_TThread_Initialize()
 
static void CINT_alloc_unlock()
 
R__EXTERN TVirtualMutex * gGlobalMutex
 
#define R__LOCKGUARD(mutex)
 
R__EXTERN Int_t(* gThreadXAR)(const char *xact, Int_t nb, void **ar, Int_t *iret)
 
Int_t TimedWaitRelative(ULong_t ms)
Wait to be signaled or till the timer times out.
 
virtual void SetAllocunlockfunc(void(*)()) const
 
static TInterpreter * Instance()
returns gInterpreter global
 
TJoinHelper(TThread *th, void **ret)
Constructor of Thread helper class.
 
Int_t Join()
Thread join function.
 
~TJoinHelper()
Destructor.
 
static void * JoinFunc(void *p)
Static method which runs in a separate thread to handle thread joins without blocking the main thread...
 
Method or function calling interface.
 
Int_t UnLock() override
Unlock the mutex.
 
Int_t Lock() override
Lock the mutex.
 
The TNamed class is the base class for all named ROOT classes.
 
const char * GetName() const override
Returns name of object.
 
virtual const char * GetName() const
Returns name of object.
 
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.
 
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
 
virtual void Info(const char *method, const char *msgfmt,...) const
Issue info message.
 
virtual void AddTimer(TTimer *t)
Add timer to list of system timers.
 
virtual void Sleep(UInt_t milliSec)
Sleep milliSec milli seconds.
 
virtual Bool_t ProcessEvents()
Process pending events (GUI, timers, sockets).
 
virtual const char * GetError()
Return system error string.
 
~TThreadCleaner()
Call user clean up routines.
 
virtual TThreadImp * CreateThreadImp()=0
 
Bool_t Notify() override
Periodically execute the TThread::XAction() method in the main thread.
 
TThreadTimer(Long_t ms=kItimerResolution+10)
Create thread timer.
 
<div class="legacybox"><h2>Legacy Code</h2> TThread is a legacy interface: there will be no bug fixes...
 
static TThread * GetThread(Long_t id)
Static method to find a thread by id.
 
static Int_t CleanUpPop(Int_t exe=0)
Static method which pops thread cleanup method off stack.
 
static Int_t CancelPoint()
Static method to set a cancellation point.
 
static Int_t Sleep(ULong_t secs, ULong_t nanos=0)
Static method to sleep the calling thread.
 
static void **volatile fgXArr
 
static Int_t CleanUpPush(void *free, void *arg=nullptr)
Static method which pushes thread cleanup method on stack.
 
static Int_t TryLock()
Static method to try to lock the main thread mutex.
 
void SetPriority(EPriority pri)
Set thread priority.
 
static Int_t Exists()
Static method to check if threads exist.
 
static void Ps()
Static method listing the existing threads.
 
static void ** GetTls(Int_t k)
Static method that initializes the TLS array of a thread and returns the reference to a given positio...
 
static TThreadImp * fgThreadImp
 
static Int_t UnLock()
Static method to unlock the main thread mutex.
 
Int_t Kill()
Kill this thread.
 
static TMutex * fgMainMutex
 
static volatile Int_t fgXAnb
 
Long_t Join(void **ret=nullptr)
Join this thread.
 
static void XAction()
Static method called via the thread timer to execute in the main thread certain commands.
 
virtual ~TThread()
Cleanup the thread.
 
static Int_t SetCancelAsynchronous()
Static method to set the cancellation response type of the calling thread to asynchronous,...
 
static Int_t CleanUp()
Static method to cleanup the calling thread.
 
void ErrorHandler(int level, const char *location, const char *fmt, va_list ap) const
Thread specific error handler function.
 
static Int_t GetTime(ULong_t *absSec, ULong_t *absNanoSec)
Static method to get the current time.
 
static Long_t SelfId()
Static method returning the id for the current thread.
 
void Constructor()
Common thread constructor.
 
static Int_t SetCancelOn()
Static method to turn on thread cancellation.
 
static void ** Tsd(void *dflt, Int_t k)
Static method returning a pointer to thread specific data container of the calling thread.
 
Int_t Run(void *arg=nullptr, const int affinity=-1)
Start the thread.
 
static volatile Int_t fgXArt
 
void SetComment(const char *txt=nullptr)
 
void DoError(Int_t level, const char *location, const char *fmt, va_list va) const override
Interface to ErrorHandler.
 
static Int_t XARequest(const char *xact, Int_t nb, void **ar, Int_t *iret)
Static method used to allow commands to be executed by the main thread.
 
static std::atomic< char * > volatile fgXAct
 
static void * Function(void *ptr)
Static method which is called by the system thread function and which in turn calls the actual user f...
 
static void Printf(const char *fmt,...)
Static method providing a thread safe printf. Appends a newline.
 
static Int_t Lock()
Static method to lock the main thread mutex.
 
friend class TThreadTimer
 
static Int_t SetCancelOff()
Static method to turn off thread cancellation.
 
static void Init()
Initialize global state and variables once.
 
static Int_t SetCancelDeferred()
Static method to set the cancellation response type of the calling thread to deferred,...
 
static void AfterCancel(TThread *th)
Static method which is called after the thread has been canceled.
 
static TMutex * fgXActMutex
 
static Bool_t IsInitialized()
Return true, if the TThread objects have been initialize.
 
static TThread * Self()
Static method returning pointer to current thread.
 
static Int_t Exit(void *ret=nullptr)
Static method which terminates the execution of the calling thread.
 
static void Initialize()
Initialize the Thread package.
 
static TCondition * fgXActCondi
 
TThread(const TThread &)=delete
 
void Delete(Option_t *option="") override
Delete this object.
 
The TTimeStamp encapsulates seconds and ns since EPOCH.
 
Handles synchronous and a-synchronous timer events.
 
void Reset()
Reset the timer.
 
This class implements a mutex interface.
 
TVirtualPad is an abstract base class for the Pad and Canvas classes.
 
R__EXTERN TVirtualRWMutex * gCoreMutex