Skip to content

Commit

Permalink
Fixes #82 - Reduce allocation for node and tree events
Browse files Browse the repository at this point in the history
Avoid using Java streams for node and tree events.

Signed-off-by: Simone Bordet <[email protected]>
  • Loading branch information
sbordet committed May 12, 2021
1 parent c75c036 commit 263d832
Showing 1 changed file with 14 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -530,10 +530,13 @@ private void invokeCompleteListener(CompleteListener listener) {
}

private void fireResourceNodeEvent(Resource.Info info) {
config.getResourceListeners().stream()
.filter(l -> l instanceof Resource.NodeListener)
.map(l -> (Resource.NodeListener)l)
.forEach(l -> invokeResourceNodeListener(l, info));
// Java streams are too expensive allocation-wise
// to be used for events generated in large numbers.
for (Resource.Listener l : config.getResourceListeners()) {
if (l instanceof Resource.NodeListener) {
invokeResourceNodeListener((Resource.NodeListener)l, info);
}
}
}

private void invokeResourceNodeListener(Resource.NodeListener listener, Resource.Info info) {
Expand All @@ -545,10 +548,13 @@ private void invokeResourceNodeListener(Resource.NodeListener listener, Resource
}

private void fireResourceTreeEvent(Resource.Info info) {
config.getResourceListeners().stream()
.filter(l -> l instanceof Resource.TreeListener)
.map(l -> (Resource.TreeListener)l)
.forEach(l -> invokeResourceTreeListener(l, info));
// Java streams are too expensive allocation-wise
// to be used for events generated in large numbers.
for (Resource.Listener l : config.getResourceListeners()) {
if (l instanceof Resource.TreeListener) {
invokeResourceTreeListener((Resource.TreeListener)l, info);
}
}
}

private void invokeResourceTreeListener(Resource.TreeListener listener, Resource.Info info) {
Expand Down

0 comments on commit 263d832

Please sign in to comment.