View Issue Details

IDProjectCategoryView StatusLast Update
0012186Open CASCADEOCCT:Foundation Classespublic2012-01-13 16:30
ReporterabvAssigned Toabv 
PrioritynormalSeverityfeature 
Status closedResolutionfixed 
OSAll 
Fixed in Version6.1.1 
Summary0012186: Basic multithread safety in OCCT Kernel
DescriptionThis item is registered to follow-up implementation of a FIP based on IFMT 193:
http://hrmt.nnov.opencascade.com:8090/IFMT/ViewDetail.jsp?id=193

The point is to introduce necessary tools and protections in OCCT kernel so as
to make it possible to use it in multithreaded application with concurrent
access to common OCCT data (first of all, memory manager)
Additional information
and documentation updates
Documentation remark, added by ABV 2006-08-09 11:05:43:

New features:
Basic support for multithreading has been provided on the level of TKernel
services of OCCT:

- New classes Standard_Mutex and OSD_Thread provide encapsulation of functions
provided by operating system to manipulate mutexes and manage threads in the
uniform way, adapted for usage with Open CASCADE.

- Open CASCADE optimized memory manager has been protected for safe work within
multithread applications where different threads can access it simultaneously.
Note however that this feature is not activated by default (for optimal
performance in default, single-thread mode). Environment variable MMGT_
REENTRANT must be set to 1 to activate this feature. Note that setting variable
MMGT_OPT to 0 (i.e. using CRT memory heap directly) is also thread safe.

Special note: for applications that heavily use OCCT memory manager from more
than one thread, on multiprocessor hardware execution with option MMGT_OPT=0
can be more performant than with option MMGT_REENTRANT=1.

- OCCT exceptions and signal handling, type system (RTTI), and some other low-
level services are protected to be thread-safe

Note that these improvements provide only basic features for using OCCT in
multithreaded applications; it is responsibility of such application to ensure
safety of access to its own data and not-yet-protected data of OCCT.

Improvements:




Changes:




Modified entities:



TagsNo tags attached.
Test case number

Attached Files

  • occ12186-abv-v1.tar.gz (30,099 bytes)
  • OCCT_MMGT_REENTRANT_v00.xls (45,568 bytes)
  • occ12186-abv-v2.tar.gz (78,884 bytes)
  • occ12186-abv-prod.tar.gz (1,376 bytes)

Activities

2006-04-14 11:39

 

occ12186-abv-v1.tar.gz (30,099 bytes)

2006-04-14 13:20

 

OCCT_MMGT_REENTRANT_v00.xls (45,568 bytes)

2006-07-12 18:33

 

occ12186-abv-v2.tar.gz (78,884 bytes)

2006-08-02 14:54

 

occ12186-abv-prod.tar.gz (1,376 bytes)

Issue History

Date Modified Username Field Change
2006-04-14 14:05 bugmaster Assigned To bugmaster => abv
2006-04-14 14:05 bugmaster Status new => assigned
2006-04-14 15:17 bugmaster CC => imv
2006-04-14 15:30 abv Status assigned => resolved
2006-08-15 18:04 mkv Status resolved => tested
2006-09-06 13:04 bugmaster Status tested => verified
2006-11-01 19:20 bugmaster Status verified => closed
2006-11-01 19:20 bugmaster Resolution @0@ => fixed
2011-08-02 11:23 bugmaster Category OCCT:FDC => OCCT:Foundation Classes
2012-01-13 16:30 atp Description Updated
2012-01-13 16:30 atp Additional Information Updated