Skip to content

Commit 176beee

Browse files
Merge pull request #110 from Geode-solutions/fix/async
fix(Async): add parallel_invoke
2 parents 1a0139d + 6d412ad commit 176beee

40 files changed

+218
-133
lines changed

bindings/python/requirements.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# This file is autogenerated by pip-compile with Python 3.10
33
# by the following command:
44
#
5-
# pip-compile bindings/python/requirements.in
5+
# pip-compile --pre bindings/python/requirements.in
66
#
7-
opengeode-core==15.*,>=15.4.8
7+
opengeode-core==15.*,>=15.5.1
88
# via -r bindings/python/requirements.in

src/geode/inspector/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,7 @@ add_geode_library(
135135
PUBLIC_DEPENDENCIES
136136
OpenGeode::basic
137137
PRIVATE_DEPENDENCIES
138+
Async++
138139
OpenGeode::geometry
139140
OpenGeode::mesh
140141
OpenGeode::model

src/geode/inspector/brep_inspector.cpp

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323

2424
#include <geode/inspector/brep_inspector.hpp>
2525

26+
#include <async++.h>
27+
2628
#include <geode/model/representation/core/brep.hpp>
2729

2830
namespace geode
@@ -47,8 +49,13 @@ namespace geode
4749
BRepInspectionResult BRepInspector::inspect_brep() const
4850
{
4951
BRepInspectionResult result;
50-
result.meshes = inspect_brep_meshes();
51-
result.topology = inspect_brep_topology();
52+
async::parallel_invoke(
53+
[&result, this] {
54+
result.meshes = inspect_brep_meshes();
55+
},
56+
[&result, this] {
57+
result.topology = inspect_brep_topology();
58+
} );
5259
return result;
5360
}
5461

src/geode/inspector/criterion/adjacency/brep_meshes_adjacency.cpp

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323

2424
#include <geode/inspector/criterion/adjacency/brep_meshes_adjacency.hpp>
2525

26+
#include <async++.h>
27+
2628
#include <geode/basic/logger.hpp>
2729
#include <geode/basic/pimpl_impl.hpp>
2830

@@ -89,16 +91,21 @@ namespace geode
8991
{
9092
}
9193

92-
BRepComponentMeshesAdjacency::~BRepComponentMeshesAdjacency() {}
94+
BRepComponentMeshesAdjacency::~BRepComponentMeshesAdjacency() = default;
9395

9496
BRepMeshesAdjacencyInspectionResult
9597
BRepComponentMeshesAdjacency::inspect_brep_meshes_adjacencies() const
9698
{
9799
BRepMeshesAdjacencyInspectionResult result;
98-
impl_->add_surfaces_edges_with_wrong_adjacencies(
99-
result.surfaces_edges_with_wrong_adjacencies );
100-
impl_->add_blocks_facets_with_wrong_adjacencies(
101-
result.blocks_facets_with_wrong_adjacencies );
100+
async::parallel_invoke(
101+
[&result, this] {
102+
impl_->add_surfaces_edges_with_wrong_adjacencies(
103+
result.surfaces_edges_with_wrong_adjacencies );
104+
},
105+
[&result, this] {
106+
impl_->add_blocks_facets_with_wrong_adjacencies(
107+
result.blocks_facets_with_wrong_adjacencies );
108+
} );
102109
return result;
103110
}
104111
} // namespace geode

src/geode/inspector/criterion/adjacency/section_meshes_adjacency.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,8 @@ namespace geode
6363
{
6464
}
6565

66-
SectionComponentMeshesAdjacency::~SectionComponentMeshesAdjacency() {}
66+
SectionComponentMeshesAdjacency::~SectionComponentMeshesAdjacency() =
67+
default;
6768

6869
SectionMeshesAdjacencyInspectionResult
6970
SectionComponentMeshesAdjacency::inspect_section_meshes_adjacencies()

src/geode/inspector/criterion/adjacency/solid_adjacency.cpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -123,9 +123,7 @@ namespace geode
123123
}
124124

125125
template < index_t dimension >
126-
SolidMeshAdjacency< dimension >::~SolidMeshAdjacency()
127-
{
128-
}
126+
SolidMeshAdjacency< dimension >::~SolidMeshAdjacency() = default;
129127

130128
template < index_t dimension >
131129
bool SolidMeshAdjacency< dimension >::mesh_has_wrong_adjacencies() const

src/geode/inspector/criterion/adjacency/surface_adjacency.cpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -122,9 +122,7 @@ namespace geode
122122
}
123123

124124
template < index_t dimension >
125-
SurfaceMeshAdjacency< dimension >::~SurfaceMeshAdjacency()
126-
{
127-
}
125+
SurfaceMeshAdjacency< dimension >::~SurfaceMeshAdjacency() = default;
128126

129127
template < index_t dimension >
130128
bool SurfaceMeshAdjacency< dimension >::mesh_has_wrong_adjacencies() const

src/geode/inspector/criterion/brep_meshes_inspector.cpp

Lines changed: 24 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323

2424
#include <geode/inspector/criterion/brep_meshes_inspector.hpp>
2525

26+
#include <async++.h>
27+
2628
namespace geode
2729
{
2830
std::string BRepMeshesInspectionResult::string() const
@@ -52,13 +54,28 @@ namespace geode
5254
BRepMeshesInspectionResult BRepMeshesInspector::inspect_brep_meshes() const
5355
{
5456
BRepMeshesInspectionResult result;
55-
result.unique_vertices_colocation = inspect_unique_vertices();
56-
result.meshes_colocation = inspect_meshes_point_colocations();
57-
result.meshes_adjacencies = inspect_brep_meshes_adjacencies();
58-
result.meshes_degenerations = inspect_elements_degeneration();
59-
result.meshes_intersections = inspect_intersections();
60-
result.meshes_non_manifolds = inspect_brep_manifold();
61-
result.meshes_negative_elements = inspect_negative_elements();
57+
async::parallel_invoke(
58+
[&result, this] {
59+
result.unique_vertices_colocation = inspect_unique_vertices();
60+
},
61+
[&result, this] {
62+
result.meshes_colocation = inspect_meshes_point_colocations();
63+
},
64+
[&result, this] {
65+
result.meshes_adjacencies = inspect_brep_meshes_adjacencies();
66+
},
67+
[&result, this] {
68+
result.meshes_degenerations = inspect_elements_degeneration();
69+
},
70+
[&result, this] {
71+
result.meshes_intersections = inspect_intersections();
72+
},
73+
[&result, this] {
74+
result.meshes_non_manifolds = inspect_brep_manifold();
75+
},
76+
[&result, this] {
77+
result.meshes_negative_elements = inspect_negative_elements();
78+
} );
6279
return result;
6380
}
6481
} // namespace geode

src/geode/inspector/criterion/colocation/component_meshes_colocation.cpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -265,9 +265,7 @@ namespace geode
265265
}
266266

267267
template < typename Model >
268-
ComponentMeshesColocation< Model >::~ComponentMeshesColocation()
269-
{
270-
}
268+
ComponentMeshesColocation< Model >::~ComponentMeshesColocation() = default;
271269

272270
template < typename Model >
273271
MeshesColocationInspectionResult

src/geode/inspector/criterion/colocation/edgedcurve_colocation.cpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,7 @@ namespace geode
5151
}
5252

5353
template < index_t dimension >
54-
EdgedCurveColocation< dimension >::~EdgedCurveColocation()
55-
{
56-
}
54+
EdgedCurveColocation< dimension >::~EdgedCurveColocation() = default;
5755

5856
template < index_t dimension >
5957
bool EdgedCurveColocation< dimension >::mesh_has_colocated_points() const

0 commit comments

Comments
 (0)