Use of G__SetCriticalSectionEnv

Given the numerous problems caused by non-thread safety of CINT, it’s interesting to see that it actually does seem to have locking infrastructure through G__SetCriticalSectionEnv() and even an example how to use it (in pause.cxx in line “* Thread Safe protection for ROOT”). But as far as I see ROOT does not use it and got curious why is that; e.g. is it tested and known to provide incomplete threads safety or otherwise not working?

Hi,

thanks for your comment.
All the effort aiming to make ROOT components thread safe went into the sixth version of the toolkit.

Cheers,
Danilo

Thanks for the response. I’ll see if G__SetCriticalSectionEnv is worth testing then, although waiting for ROOT 6 sound preferable in many ways.

Hi,

yours is a valid point.
Just a little remark: ROOT6 is already available since may 2014 and very soon the new 6.04 release will be available.

Cheers,
Danilo

Yes ROOT6 is available, but not for certain platforms where ROOT5 is.

Hi,

Windows is still missing, correct. On the other hand, LLVM improved quite a lot in the past few months: we are working hard to provide our Windows users community with a high quality ROOT6.

Cheers,
Danilo