Subject: Re: [boost] [Locale] Static locale initialisation
From: Alexander Lamaison (awl03_at_[hidden])
Date: 2010-04-08 15:44:14


On Tue, 6 Apr 2010 23:26:09 -0700 (PDT), Artyom wrote:

>>> Can you provide a simple sample of the code that
>> reproduces the issue
>>> so I can debug it?
>>
>> I'll try and whip something up tonight.
>
> Any updates?

I've had real trouble isolating a minimal set of code to reproduce this.
It appears to be related to the static local instance:

__PURE_APPDOMAIN_GLOBAL static std::locale::_Locimp *global_locale = 0; //
pointer to current locale

being deleted once for *each loaded DLL*. When I Release() a COM component
in a separate DLL, the DLL is unloaded and calls tidy_global() deleting
global_locale. Later the EXE terminates which again tries to delete
global_locale causing an access violation.

Unfortunately, I'm nowhere near a small set of code for repro yet :(

Alex

P.S. As you advised, I compiled my own version of ICU. Because they only
ship an MSVC9 project with version 4.2 (why do projects to that?!) I've
downgraded to 4.0.