[ROOT] thread-defed globals

From: Matevz Tadel (Matevz.Tadel@ijs.si)
Date: Wed Feb 23 2000 - 13:40:11 MET


Hi!

I found the truthfulness of statetement "TThread is not being easy to
use correctly" the hard way ... when i first tried to use it a few
weeks ago. Said to myself ... well ... need some more expirience with
threads anyway ... and wrote a minimal wrapper classes for posix
threads/mutexes. Then banged on the problem of setting gDirectory when 
different threads create histograms in different directories ...

After reading the mail that gPad is protected went grepping thru the
code and found
TVirtualPad.h:#define gPad (Pad())
but then failed to find Pad() function.
I'd expect it to be sth like:
TPad* Pad() {
  TPad* p = Thread::GetSelf()->GetPad();
  return p;
}

Anyway ... is there sth like a manifesto/description of how to get
this done without neurological surgery on root?
Would defining 3 such functions, using #defines in some high enough
place (like Rtypes.h) and recompile the ROOT do the trick?

Or are there some tricker mechanisms i'm completely ignorant of at the 
moment?

just trying to understand ...

cheers,
matevz

---------------------------------------------------
 Matevz Tadel,         E-mail: Matevz.Tadel@ijs.si 
 Department of Experimental High Energy Physics F9 
 Jozef Stefan Institute,  Jamova 39,  P.o.Box 3000 
 SI-1001 Ljubljana, Slovenia                       
 Tel.: +386-61-177-3674      Fax: +386-61-125-7074 
---------------------------------------------------



This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:19 MET