> -----Original Message-----
> From: Travis Vitek [mailto:[EMAIL PROTECTED] 
> Sent: Saturday, September 29, 2007 2:27 AM
> To: stdcxx-dev@incubator.apache.org
> Subject: [PATCH] __rw_setlocale not threadsafe
> 
> 
> The __rw_setlocale destructor currently restores the previous 
> locale when it isn't holding the lock. This can cause 
> problems if another thread takes the lock and calls setlocale 
> before the original thread restores the locale.
> 
> I believe this problem to be the cause of the following 
> failure that I frequently get when running the 
> 22.locale.numpunct.mt test.
> 
>     terminate called after throwing an instance of 
> 'std::runtime_error'
>       what():  
> /amd/devco/vitek/stdcxx-trunk/src/setlocale.cpp:128: 
> __rw::__rw_setlocale::__rw_setlocale(const char *, int, int): 
> bad locale name: "À¡G.utf8"
>     Aborted (core dumped)
> 
> Note: The only time that the destructor needs to restore the 
> locale is when the locale was actually changed. That case is 
> indicated when _C_guard is set to some non-zero value.

  Commited thus: http://svn.apache.org/viewvc?rev=580961&view=rev

Farid.

Reply via email to