AW: [ROOT] ROOT PRO version 3.03/08 is now released

From: Essel Dr.Hans-Georg (H.Essel@gsi.de)
Date: Thu Aug 29 2002 - 13:45:32 MEST


Dear ROOT teamers,
the following is said in the release notes of 3.03/08 about thread safety:
......
Patch from Mathieu de Naurois adding Thread-safety in many ROOT classes.
A new TVirtualMutex global is defined in TVirtualMutex.h (gCINTmutex).
The gCINTMutes is used in TMethodCall to protect concurrent access to CINT.
The R__LOCKGUARD macro is introduced in many classes to check for a mutex.
The performance penalty introduced by the MUTEX logic
  -is ZERO in the application has no threads
  -about 10% in case of threads
......
Just one strong wish and one question:
The wish:
There are already multi-threaded ROOT based programs running. Obviously they
managed already the necessary locking on application level. These are now
punished by the way
the LOCKGUARD is implemented, because it depends on _REENTRANT, which in
turn is set when
you build ROOT with threads.
Why do the programs mentioned above not throw away their locking, now we
have LOCKGUARD?
Well, first it may be a question of developer time, second, see the question
below.

We propose unstead to separate the activation of the LOCKGUARD by using an
extra keyword.

The question:
What does it mean: "Thread-safety in many ROOT classes"?
So far TStorage, TCollection, TCint, TClass, TMethodCall and TThread itself.
Is with these the ROOT class library now thread-save or not? 
E.g. whats about modifications of the global lists and directories?

Thanks,

Hans



This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:51:06 MET