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