From c77353fd9cdfcc8598c03773d9db0d57fa082cce Mon Sep 17 00:00:00 2001 From: Jason Volk Date: Tue, 17 Sep 2019 17:18:13 -0700 Subject: [PATCH] modules/client/sync/rooms/timeline: Add conditional prefetch on down iteration. --- modules/client/sync/rooms/timeline.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/modules/client/sync/rooms/timeline.cc b/modules/client/sync/rooms/timeline.cc index 7472bc34d..bcb0ce48d 100644 --- a/modules/client/sync/rooms/timeline.cc +++ b/modules/client/sync/rooms/timeline.cc @@ -248,7 +248,6 @@ ircd::m::sync::_room_timeline_polylog_events(data &data, room }; - ssize_t i(0); const ssize_t limit { data.phased && data.range.first == 0? @@ -256,6 +255,7 @@ ircd::m::sync::_room_timeline_polylog_events(data &data, ssize_t(limit_default) }; + ssize_t i(0), prefetched(0); for(; it && i <= limit; --it) { event_idx = it.event_idx(); @@ -265,6 +265,9 @@ ircd::m::sync::_room_timeline_polylog_events(data &data, if(event_idx < data.range.first) break; + if(limit > 1) + prefetched += m::prefetch(event_idx); + ++i; }