Re: [Reflex] Thread safety

From: Axel Naumann <Axel.Naumann_at_cern.ch>
Date: Wed, 23 Jan 2008 18:24:29 +0100


Hi Jean-Francois and Gordon,

On 2008-01-23 18:12, Gordon Watts wrote:

>> compiler). Under Visual Studio you can't swap libReflex.dll between
>> the debug and release version without recompiling your dependent
>> projects.

>
> Axel has just checked in some changes that should help to fix this
> problem - or, at least, generate compiler warnings you when things
> you are doing are about to go badly wrong.

but that's in the ROOT context - so Jean-Francois doesn't care :-) I am afraid that the debug / release incompatibility is really an issue you have to fight with MS.

> The problem boils down to MS having different API for STL when
> debugging is on vs with optimization is on. This is because they add
> all sorts of cross-checks (did you index past the end of a vector,
> etc.) and apparently to do some of this they had to modify the API of
> the library. This can be switched off with some #defines, which
> Axel's modification does.

You can have a look at
<http://root.cern.ch/viewcvs/trunk/build/win/w32pragma.h?revision=21579&view=markup> to see how we deal with it inside ROOT.

For the new Reflex version I will even (have to) change the API of Reflex. I know that this is painful for its users, but I find I have very good reasons for doing so - once. But even after that big update of Reflex is done I can not guarantee binary compatibility across versions; I will do my best, though. And yes, having a tool to check that would definitely be nice :-) Comparing the Reflex dictionary of itself is not sufficient...

Cheers, Axel. Received on Wed Jan 23 2008 - 18:24:35 CET

This archive was generated by hypermail 2.2.0 : Wed Jan 23 2008 - 23:50:01 CET