diff --git a/modules/client/sync/rooms/state.cc b/modules/client/sync/rooms/state.cc index 24c5d999e..f7c3a1dc1 100644 --- a/modules/client/sync/rooms/state.cc +++ b/modules/client/sync/rooms/state.cc @@ -51,12 +51,10 @@ ircd::m::sync::_default_keys }; decltype(ircd::m::sync::_default_fopts) -ircd::m::sync::_default_fopts{[] +ircd::m::sync::_default_fopts { - event::fetch::opts ret{_default_keys}; - ret.query_json_force = true; - return ret; -}()}; + _default_keys +}; void ircd::m::sync::room_state_linear(data &data) @@ -97,21 +95,26 @@ ircd::m::sync::room_state_polylog_events(data &data) const event::closure_idx each_idx{[&data, &array, &mutex] (const m::event::idx &event_idx) { - const event::fetch event + const event::fetch fetch { event_idx, std::nothrow, _default_fopts }; - if(!event.valid) + if(!fetch.valid) return; + const m::event event + { + fetch, event::keys{_default_keys} + }; + const std::lock_guard lock{mutex}; data.commit(); array.append(event); }}; //TODO: conf - std::array md; + std::array md; ctx::parallel parallel { m::sync::pool, md, each_idx