]> OCCT Git - occt-copy.git/commit
0029182: BOPAlgo_PaveFiller sometimes raises exception in parallel mode
authormsv <msv@opencascade.com>
Fri, 6 Oct 2017 14:07:50 +0000 (17:07 +0300)
committeremv <emv@opencascade.com>
Wed, 22 Nov 2017 11:15:56 +0000 (14:15 +0300)
commitde0eb2d1ce8dbad7df4846582133e56def327ad1
tree913b4fc130e975ed71efbdc730679de4f644e157
parentd39c53700f83536ccfb904e9e188550ce27e5228
0029182: BOPAlgo_PaveFiller sometimes raises exception in parallel mode

Data races have been prevented in the code of BOPAlgo_PaveFiller that makes pcurves of edges on faces. For that:
- Put into treatment only unique edge-face pairs.
- If the same edge is treated with different faces in different threads simultaneously this also causes data races. To avoid this make the edge's copy in each thread and update the copy. The original edge is updated only after finishing parallel processing.

The new method BOPTools_AlgoTools::CopyEdge has been added to make a copy of an edge with vertices.

Big screenshot in the test script tests/bugs/modalg_7/bug28200 has been replaced with a small one.
src/BOPAlgo/BOPAlgo_PaveFiller_7.cxx
src/BOPTools/BOPTools_AlgoTools.hxx
src/BOPTools/BOPTools_AlgoTools_2.cxx
tests/bugs/modalg_7/bug29182 [new file with mode: 0644]
tests/bugs/modalg_7/bug29182_1 [new file with mode: 0644]