View Issue Details

IDProjectCategoryView StatusLast Update
0022933CommunityOCCT:Foundation Classespublic2013-04-29 15:22
Reporterbrueninghaus Assigned Tobugmaster  
PrioritynormalSeverityfeature 
Status closedResolutionfixed 
PlatformAOSL 
Product Version6.5.2 
Target Version6.6.0Fixed in Version6.6.0 
Summary0022933: Thread-safe locale handling in OSD_Localizer
DescriptionThread-safe. There is a discussion on this topic at:
[1] http://dev.opencascade.org/index.php?q=node/35
[2] http://tracker.dev.opencascade.org/view.php?id=22898
[3] http://tracker.dev.opencascade.org/view.php?id=22808

The changed implementation of OSD_Localizer uses uselocale() or _configthreadlocale() (on Windows, that seems to miss uselocale) as described in [3].

It also implements the suggestion of Markus Rhein [3] to reset the locale in the destructor. Since the function Restore() is no longer needed, it is removed.

I removed also the functions SetLocale(), Locale() and Category() since they are used nowhere.

I have changed the (up to now) only occurrence of OSD_Localizer in OpenGl_GraphicDriver_Export.cxx to work with the new implementation.

I have not done anything to the cdl-file, since I miss knowledge on this.

It seems to work on my system (Debian Squeeze, 32bit), but other platforms have to be tested too.

If think you want to add relationship to 0022808 and 0022898. They can be easily resolved after this one.
TagsNo tags attached.
Test case number

Attached Files

  • OSD_Localizer-thread_safe.diff (3,823 bytes)

Relationships

related to 0022808 closedbugmaster Undocumented change of global locale 
related to 0022898 closedabv IGES import fails in german environment 

Activities

brueninghaus

2012-01-30 02:58

reporter  

OSD_Localizer-thread_safe.diff (3,823 bytes)

kgv

2013-02-19 12:27

developer   ~0023383

Dear bugmaster,

the suggested changes (thread-safe locale handling) were done within 0022898 patch. Please close the bug.

Standard_CLocaleSentry is a new replacement for removed OSD_Localizer and now intended only for temporary switch C runtime library locale to "C" locale.

bugmaster

2013-02-19 18:49

administrator   ~0023392

Problem has been corrected by fix for 0022898 issue

Issue History

Date Modified Username Field Change
2012-01-30 02:58 brueninghaus New Issue
2012-01-30 02:58 brueninghaus Assigned To => abv
2012-01-30 02:58 brueninghaus File Added: OSD_Localizer-thread_safe.diff
2012-01-30 02:58 brueninghaus Status new => resolved
2012-01-30 08:17 abv Relationship added related to 0022808
2012-01-30 08:17 abv Relationship added related to 0022898
2013-01-17 10:38 abv Assigned To abv => kgv
2013-01-17 10:38 abv Status resolved => assigned
2013-02-19 12:27 kgv Note Added: 0023383
2013-02-19 12:27 kgv Assigned To kgv => bugmaster
2013-02-19 12:27 kgv Status assigned => feedback
2013-02-19 12:27 kgv Target Version => 6.6.0
2013-02-19 18:49 bugmaster Status feedback => tested
2013-02-19 18:49 bugmaster Note Added: 0023392
2013-02-19 18:49 bugmaster Status tested => verified
2013-02-19 18:49 bugmaster Resolution open => fixed
2013-04-23 13:36 aiv Status verified => closed
2013-04-29 15:22 aiv Fixed in Version => 6.6.0