The current prepared geometry implementations are not thread safe. In dbaston@c196055 I updated the various lazy initialization methods of PreparedPolygon to use std::call_once. Running a multi-threaded test under valgrind --tool=helgrind shows problems in MCIndexSegmentSetMutualIntersector. There is a lot of state manipulation this class that would need to be removed, while remaining within (or updating) the SegmentSetMutualIntersector interface.
The current prepared geometry implementations are not thread safe. In dbaston@c196055 I updated the various lazy initialization methods of
PreparedPolygonto usestd::call_once. Running a multi-threaded test undervalgrind --tool=helgrindshows problems inMCIndexSegmentSetMutualIntersector. There is a lot of state manipulation this class that would need to be removed, while remaining within (or updating) theSegmentSetMutualIntersectorinterface.