make parallelism optional
This commit is contained in:
1 parent
687cdf2cac
commit
2f6b8393f8
3 files changed
+14
-5
No files matched your search
@@ -380,6 +380,7 @@ pub fn resolve_passes<V: FromAnyValue + Send + Sync>(
|
||||
tree: &mut RealDom<V>,
|
||||
dirty_nodes: DirtyNodeStates,
|
||||
ctx: SendAnyMap,
|
||||
parallel: bool,
|
||||
) -> FxDashSet<NodeId> {
|
||||
let passes = &tree.passes;
|
||||
let mut resolved_passes: FxHashSet<TypeId> = FxHashSet::default();
|
||||
@@ -414,9 +415,13 @@ pub fn resolve_passes<V: FromAnyValue + Send + Sync>(
|
||||
let dirty_nodes = dirty_nodes.clone();
|
||||
let nodes_updated = nodes_updated.clone();
|
||||
let ctx = ctx.clone();
|
||||
s.spawn(move |_| {
|
||||
if parallel {
|
||||
s.spawn(move |_| {
|
||||
pass.resolve(tree_view, &dirty_nodes, &nodes_updated, &ctx);
|
||||
});
|
||||
} else {
|
||||
pass.resolve(tree_view, &dirty_nodes, &nodes_updated, &ctx);
|
||||
});
|
||||
}
|
||||
} else {
|
||||
i += 1;
|
||||
}
|
||||
|
||||
@@ -439,6 +439,7 @@ impl<V: FromAnyValue + Send + Sync> RealDom<V> {
|
||||
pub fn update_state(
|
||||
&mut self,
|
||||
ctx: SendAnyMap,
|
||||
parallel: bool,
|
||||
) -> (FxDashSet<NodeId>, FxHashMap<NodeId, NodeMask>) {
|
||||
let passes = std::mem::take(&mut self.passes_updated);
|
||||
let nodes_updated = std::mem::take(&mut self.nodes_updated);
|
||||
@@ -452,7 +453,10 @@ impl<V: FromAnyValue + Send + Sync> RealDom<V> {
|
||||
}
|
||||
}
|
||||
|
||||
(resolve_passes(self, dirty_nodes, ctx), nodes_updated)
|
||||
(
|
||||
resolve_passes(self, dirty_nodes, ctx, parallel),
|
||||
nodes_updated,
|
||||
)
|
||||
}
|
||||
|
||||
fn remove(&mut self, id: NodeId) {
|
||||
|
||||
@@ -126,7 +126,7 @@ pub fn launch_cfg_with_props<Props: 'static>(app: Component<Props>, props: Props
|
||||
rdom.apply_mutations(mutations);
|
||||
let mut any_map = SendAnyMap::new();
|
||||
any_map.insert(taffy.clone());
|
||||
let _ = rdom.update_state(any_map);
|
||||
let _ = rdom.update_state(any_map, false);
|
||||
}
|
||||
|
||||
render_vdom(
|
||||
@@ -320,7 +320,7 @@ fn render_vdom(
|
||||
// update the style and layout
|
||||
let mut any_map = SendAnyMap::new();
|
||||
any_map.insert(taffy.clone());
|
||||
let (new_to_rerender, dirty) = rdom.update_state(any_map);
|
||||
let (new_to_rerender, dirty) = rdom.update_state(any_map, false);
|
||||
to_rerender = new_to_rerender;
|
||||
let text_mask = NodeMaskBuilder::new().with_text().build();
|
||||
for (id, mask) in dirty {
|
||||
|
||||
Reference in new issue
Block a user