occt: master 56c62737

Author Committer Branch Timestamp Parent
msv bugmaster master 2017-10-06 14:07:50 master 5fbe3d01
Changeset 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.
mod - src/BOPAlgo/BOPAlgo_PaveFiller_7.cxx Diff File
mod - src/BOPTools/BOPTools_AlgoTools.hxx Diff File
mod - src/BOPTools/BOPTools_AlgoTools_2.cxx Diff File
mod - tests/bugs/modalg_7/bug28200 Diff File
add - tests/bugs/modalg_7/bug29182 Diff File
add - tests/bugs/modalg_7/bug29182_1 Diff File