Don't waste CPU cycles on an empty response after all

This commit is contained in:
Neil Alexander 2022-03-25 12:09:49 +00:00
parent 3df6523a32
commit 8a0c2a47e5
No known key found for this signature in database
GPG key ID: A02A2019A2BB0944

View file

@ -220,6 +220,11 @@ func (p *PDUStreamProvider) addRoomDeltaToResponse(
return r.From, err return r.From, err
} }
// If we didn't return any events at all then don't bother doing anything else.
if len(recentEvents) == 0 && len(delta.StateEvents) == 0 {
return r.To, nil
}
// Sort the events so that we can pick out the latest events from both sections. // Sort the events so that we can pick out the latest events from both sections.
recentEvents = gomatrixserverlib.HeaderedReverseTopologicalOrdering(recentEvents, gomatrixserverlib.TopologicalOrderByPrevEvents) recentEvents = gomatrixserverlib.HeaderedReverseTopologicalOrdering(recentEvents, gomatrixserverlib.TopologicalOrderByPrevEvents)
delta.StateEvents = gomatrixserverlib.HeaderedReverseTopologicalOrdering(delta.StateEvents, gomatrixserverlib.TopologicalOrderByAuthEvents) delta.StateEvents = gomatrixserverlib.HeaderedReverseTopologicalOrdering(delta.StateEvents, gomatrixserverlib.TopologicalOrderByAuthEvents)