Re: [ROOT] thread-defed globals

From: Fons Rademakers (Fons.Rademakers@cern.ch)
Date: Wed Feb 23 2000 - 15:47:04 MET


Hi Matevz,

  try looking for TVirtualPad *&gPad (remember gPad is defed to Pad()) so
you will never find Pad() in the code).

Cheers, Fons.



Matevz Tadel wrote:
> 
> 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
> ---------------------------------------------------

-- 
Org:    CERN, European Laboratory for Particle Physics.
Mail:   1211 Geneve 23, Switzerland
E-Mail: Fons.Rademakers@cern.ch              Phone: +41 22 7679248
WWW:    http://root.cern.ch/~rdm/            Fax:   +41 22 7677910



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