View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0022887 | Open CASCADE | OCCT:Modeling Algorithms | public | 2012-01-10 11:45 | 2012-03-29 17:26 |
Reporter | epv | Assigned To | bugmaster | ||
Priority | high | Severity | major | ||
Status | closed | Resolution | fixed | ||
Platform | A | OS | L | ||
Product Version | 6.5.2 | ||||
Target Version | 6.5.3 | Fixed in Version | 6.5.3 | ||
Summary | 0022887: Request to make Intf_InterferencePolygon2d class thread-safe. | ||||
Description | Request to make Intf_InterferencePolygon2d class thread-safe. Now it is not. It blocks Express Mesh parallelization. A lot of data races and failures in parallel implementation of the Express Mesh is caused by methods of Intf_InterferencePolygon2d class. The root cause is the usage of global static variables in this class. It is necessary to remove them and to make the code thread-safe. | ||||
Additional information and documentation updates | 1. Intf_InterferencePolygon2d class is not a generic (template) class anymore. Dealing with specific types of polygons is now possible thanks to virtual methods of Intf_Polygon2d class that is a root class for all polygons that can be handled by Intf_InterferencePolygon2d. 2. Intf_ToolPolygon class is removed, its functionality is now provided by the root class Intf_Polygon2d. 3. Each specific class of polygon inherits Intf_Polygon2d and implements special virtual methods that are called by Intf_InterferencePolygon2d. 4. Therefore (in connection with 1-3), sections of code that use these classes have been changed. | ||||
Tags | No tags attached. | ||||
Test case number | Test case is not required | ||||
|
I made some improvements in implementation of this class, namely I changed its nature from 'generic' to normal class. The modifications are available in http://svn/svn/occt/branches/22887_szv. |
|
Branch http://svn/svn/occt/branches/22887_szv is ready to be reviewed. |
|
Dear Julia, Could you please review the code? On my side I have no remarks on the code, though I admit I did not review it carefully (too many formatting changes). To Sergey and Alexander: please provide description of the changes made in Additional Information field |
|
No remarks |
|
Dear BugMaster, SVN branch http://svn/svn/occt/branches/22887_szv has been moved to GIT CR22887 one. Workbench KAS:dev:mkv-22887-occt was created from git branch CR22887 (and mkv-22887-products from svn trunk) and compiled on Linux platform. There are compilation errors in mkv-22887-products: Info : -------> QMTools_IntPolySeg2d.cxx Error : Errors occured in Shell /dn47/KAS/dev/mkv-22887-products/src/QMTools/QMTools_IntPolySeg2d.cxx:32:42: error: Intf_InterferencePolygon2d.gxx: No suc h file or directory /dn47/KAS/dev/mkv-22887-products/src/QMTools/QMTools_IntPolySeg2d.cxx: In member function 'void QMTools_IntPolySeg2d::Post Process()': /dn47/KAS/dev/mkv-22887-products/src/QMTools/QMTools_IntPolySeg2d.cxx:57: error: invalid use of incomplete type 'const str uct Intf_TangentZone' /dn47/KAS/dev/mkv-22887-occt/inc/Intf_SeqOfTangentZone.hxx:27: error: forward declaration of 'const struct Intf_TangentZon e' /dn47/KAS/dev/mkv-22887-products/src/QMTools/QMTools_IntPolySeg2d.cxx:58: error: invalid use of incomplete type 'const str uct Intf_TangentZone' /dn47/KAS/dev/mkv-22887-occt/inc/Intf_SeqOfTangentZone.hxx:27: error: forward declaration of 'const struct Intf_TangentZon e' /dn47/KAS/dev/mkv-22887-products/src/QMTools/QMTools_IntPolySeg2d.cxx:66: error: invalid use of incomplete type 'const str uct Intf_TangentZone' /dn47/KAS/dev/mkv-22887-occt/inc/Intf_SeqOfTangentZone.hxx:27: error: forward declaration of 'const struct Intf_TangentZon e' /dn47/KAS/dev/mkv-22887-products/src/QMTools/QMTools_IntPolySeg2d.cxx:67: error: invalid use of incomplete type 'const str uct Intf_TangentZone' /dn47/KAS/dev/mkv-22887-occt/inc/Intf_SeqOfTangentZone.hxx:27: error: forward declaration of 'const struct Intf_TangentZon e' /dn47/KAS/dev/mkv-22887-products/src/QMTools/QMTools_IntPolySeg2d.cxx: In member function 'void QMTools_IntPolySeg2d::Inse rtPoint(const Intf_SectionPoint&)': /dn47/KAS/dev/mkv-22887-products/src/QMTools/QMTools_IntPolySeg2d.cxx:91: error: 'Intf_PIType' was not declared in this sc ope /dn47/KAS/dev/mkv-22887-products/src/QMTools/QMTools_IntPolySeg2d.cxx:91: error: expected ';' before 'type1' /dn47/KAS/dev/mkv-22887-products/src/QMTools/QMTools_IntPolySeg2d.cxx:92: error: invalid use of incomplete type 'const str uct Intf_SectionPoint' /dn47/KAS/dev/mkv-22887-occt/inc/Intf_SeqOfSectionPoint.hxx:27: error: forward declaration of 'const struct Intf_SectionPo int' /dn47/KAS/dev/mkv-22887-products/src/QMTools/QMTools_IntPolySeg2d.cxx:92: error: 'type1' was not declared in this scope /dn47/KAS/dev/mkv-22887-products/src/QMTools/QMTools_IntPolySeg2d.cxx:93: error: invalid use of incomplete type 'const str uct Intf_SectionPoint' /dn47/KAS/dev/mkv-22887-occt/inc/Intf_SeqOfSectionPoint.hxx:27: error: forward declaration of 'const struct Intf_SectionPo int' /dn47/KAS/dev/mkv-22887-products/src/QMTools/QMTools_IntPolySeg2d.cxx:93: error: 'type2' was not declared in this scope /dn47/KAS/dev/mkv-22887-products/src/QMTools/QMTools_IntPolySeg2d.cxx:94: error: 'Intf_EXTERNAL' was not declared in this scope /dn47/KAS/dev/mkv-22887-products/src/QMTools/QMTools_IntPolySeg2d.cxx:101: error: 'Intf_VERTEX' was not declared in this s cope /dn47/KAS/dev/mkv-22887-products/src/QMTools/QMTools_IntPolySeg2d.cxx:105: error: 'Intf_VERTEX' was not declared in this s cope /dn47/KAS/dev/mkv-22887-products/src/QMTools/QMTools_IntPolySeg2d.cxx:111: error: 'Intf_VERTEX' was not declared in this s cope Error : Failed : QMTools_IntPolySeg2d.cxx Info : ----------------------- Compilation Report ----------------------- Info : Failed : :KAS:dev:mkv-22887-products:QMTools:source:QMTools_IntPolySeg2d.cxx Info : ----------------------------------------------------------------- Info : ------------------ Process report ------------------ Info : Failed QMTools (obj.comp obj.idep ) Info : ---------------------------------------------------- |
|
The fix for Express Mesh is available in http://svn/svn/occt-products/branches/22887_szv. Please test the branch. |
|
Dear BugMaster, SVN branch http://svn/svn/occt/branches/22887_szv has been moved to GIT CR22887 one. Workbench KAS:dev:mkv-22887-occt was created from git branch CR22887 (and mkv-22887-products from http://svn/svn/occt-products/branches/22887_szv ) and compiled on Linux platform. There are not regressions in mkv-22887-products regarding to KAS:dev:products-20120306-opt See results in /QADisk/occttests/results/KAS/dev/mkv-22887-products_13032012/lin See reference results in /QADisk/occttests/results/KAS/dev/products-20120306-opt_07032012/lin See test cases in /QADisk/occttests/tests/ED N.B. In order to launch testing case you can make use the following instructions http://doc/doku.php?id=occt:certification |
|
Integrated to master Integrated into trunk of occt-products repository Date: 2012-03-16 16:57:11 +0400 (Fri, 16 Mar 2012) New Revision: 18576 Removed: trunk/src/QMTools/QMTools_ToolPolySeg2d.hxx Modified: trunk/src/QMData/QMData_PolySeg2d.cxx trunk/src/QMData/QMData_PolySeg2d.hxx trunk/src/QMTools/FILES trunk/src/QMTools/QMTools_IntPolySeg2d.cxx trunk/src/QMTools/QMTools_IntPolySeg2d.hxx |
occt: master 9530af27 2012-03-12 14:31:11
Committer: bugmaster Details Diff |
0022887: Request to make Intf_InterferencePolygon2d class thread-safe. |
Affected Issues 0022887 |
|
mod - src/IntCurve/FILES | Diff File | ||
mod - src/IntCurve/IntCurve.cdl | Diff File | ||
mod - src/IntCurve/IntCurve_IntPolyPolyGen.cdl | Diff File | ||
mod - src/IntCurve/IntCurve_IntPolyPolyGen.gxx | Diff File | ||
mod - src/IntCurve/IntCurve_Polygon2dGen.cdl | Diff File | ||
mod - src/IntCurve/IntCurve_Polygon2dGen.gxx | Diff File | ||
mod - src/IntCurve/IntCurve_Polygon2dGen.lxx | Diff File | ||
mod - src/IntCurve/IntCurve_ToolPolygon.cdl | Diff File | ||
mod - src/IntCurve/IntCurve_ToolPolygon.gxx | Diff File | ||
mod - src/IntCurve/IntCurve_ToolPolygon.lxx | Diff File | ||
mod - src/Intf/Intf.cdl | Diff File | ||
mod - src/Intf/Intf_Interference.cdl | Diff File | ||
mod - src/Intf/Intf_Interference.cxx | Diff File | ||
add - src/Intf/Intf_Interference.lxx | Diff File | ||
mod - src/Intf/Intf_InterferencePolygon2d.cdl | Diff File | ||
add - src/Intf/Intf_InterferencePolygon2d.cxx | Diff File | ||
mod - src/Intf/Intf_InterferencePolygon2d.gxx | Diff File | ||
add - src/Intf/Intf_Polygon2d.cdl | Diff File | ||
add - src/Intf/Intf_Polygon2d.cxx | Diff File | ||
add - src/Intf/Intf_Polygon2d.lxx | Diff File | ||
mod - src/Intf/Intf_ToolPolygon.cdl | Diff File | ||
mod - src/IntPatch/IntPatch.cdl | Diff File | ||
mod - src/IntPatch/IntPatch_PolyArc.cdl | Diff File | ||
mod - src/IntPatch/IntPatch_PolyArc.cxx | Diff File | ||
mod - src/IntPatch/IntPatch_Polygo.cdl | Diff File | ||
mod - src/IntPatch/IntPatch_Polygo.cxx | Diff File | ||
add - src/IntPatch/IntPatch_Polygo.lxx | Diff File | ||
mod - src/IntPatch/IntPatch_PolygoTool.cdl | Diff File | ||
mod - src/IntPatch/IntPatch_PolygoTool.cxx | Diff File | ||
mod - src/IntPatch/IntPatch_PolygoTool.lxx | Diff File | ||
mod - src/IntPatch/IntPatch_PolyLine.cdl | Diff File | ||
mod - src/IntPatch/IntPatch_PolyLine.cxx | Diff File | ||
mod - src/IntPatch/IntPatch_RstInt.cdl | Diff File | ||
mod - src/IntPatch/IntPatch_RstInt.cxx | Diff File |
Date Modified | Username | Field | Change |
---|---|---|---|
2012-01-10 11:45 | epv | New Issue | |
2012-01-10 11:45 | epv | Assigned To | => azn |
2012-01-30 11:29 |
|
Status | new => assigned |
2012-01-30 11:29 |
|
Summary | It is necessary to make Intf_InterferencePolygon2d class thread-safe. Now it is not. It blocks Express Mesh parallelization. => Request to make Intf_InterferencePolygon2d class thread-safe. |
2012-01-30 11:29 |
|
Description Updated | |
2012-02-09 09:54 |
|
Target Version | 6.5.3 => 6.5.4 |
2012-02-14 15:03 |
|
Note Added: 0019554 | |
2012-03-02 13:46 |
|
Note Added: 0019848 | |
2012-03-02 13:46 |
|
Status | assigned => resolved |
2012-03-02 13:46 |
|
Assigned To | azn => abv |
2012-03-06 11:01 |
|
Assigned To | abv => jgv |
2012-03-06 11:03 |
|
Note Added: 0019874 | |
2012-03-11 11:59 |
|
Additional Information Updated | |
2012-03-11 12:48 |
|
Additional Information Updated | |
2012-03-12 12:52 |
|
Note Added: 0019932 | |
2012-03-12 12:52 |
|
Status | resolved => reviewed |
2012-03-12 13:05 |
|
Assigned To | jgv => mkv |
2012-03-13 18:04 |
|
Note Added: 0019957 | |
2012-03-13 18:04 |
|
Assigned To | mkv => szv |
2012-03-13 18:05 |
|
Status | reviewed => assigned |
2012-03-14 15:41 |
|
Assigned To | szv => azn |
2012-03-15 13:47 |
|
Note Added: 0019993 | |
2012-03-15 13:47 |
|
Assigned To | azn => mkv |
2012-03-15 13:47 |
|
Status | assigned => resolved |
2012-03-15 14:05 |
|
Status | resolved => reviewed |
2012-03-15 19:41 |
|
Note Added: 0020007 | |
2012-03-15 19:41 |
|
Test case number | => Test case is not required |
2012-03-15 19:41 |
|
Assigned To | mkv => bugmaster |
2012-03-15 19:41 |
|
Status | reviewed => tested |
2012-03-16 17:51 | bugmaster | Note Added: 0020025 | |
2012-03-16 17:51 | bugmaster | Status | tested => verified |
2012-03-16 17:51 | bugmaster | Resolution | open => fixed |
2012-03-16 17:52 | bugmaster | Assigned To | bugmaster => szv |
2012-03-16 17:52 | bugmaster | Target Version | 6.5.4 => 6.5.3 |
2012-03-29 17:26 | bugmaster | Changeset attached | => occt master 9530af27 |