2016-05-21 5 views
1

Ich kann keine Informationen über Thread-Sicherheit von OpenMesh-Operationen, speziell ich bin auf der Suche nach einem Multithread-Mesh-Import. Zur Zeit fülle ich mein Mesh durch:OpenMesh Multithread-Mesh-Import

OpenMesh::IO::ImporterT 

Im einzelnen Thread. Aber wenn es möglich ist - ich wan't in mehreren Threads diesen Vorgang zu tun, ohne zu blockieren um:

meshImporter.add_face(faceHandle); 
meshImporter.add_vertex(vertex); 

Aber es ist ein wenig langsamer, als ich dachte (Es verbraucht mehr als die Hälfte der Zeit der nächsten Operation - Dezimierung die gleiche Masche).

Antwort

2

Keine der OpenMesh-Datenstrukturen bietet eine thread-sichere Modifikation. Operationen wie add_face oder add_vertex müssen Indizes anderer Elementtypen aktualisieren, um die Datenstruktur in einem konsistenten Zustand zu halten. Wenn Sie diese Methoden gleichzeitig auf demselben Mesh aufrufen, kann dies zu beschädigten Mesh-Daten führen.

Da OpenMesh::IO::ImporterT seine Aufrufe hauptsächlich an ein zugrunde liegendes Mesh weiterleitet, gelten dieselben Einschränkungen: Alle Updates für ein OpenMesh müssen synchronisiert werden.