diff options
author | Erik Johnston <erik@matrix.org> | 2015-05-13 16:59:41 +0100 |
---|---|---|
committer | Erik Johnston <erik@matrix.org> | 2015-05-13 16:59:41 +0100 |
commit | 4071f2965320950c7f1bbdd39105f8c34ca95034 (patch) | |
tree | 2fc19964d13772cd142dcd86d8898fe8805a90c1 /synapse/storage/stream.py | |
parent | Typo (diff) | |
download | synapse-4071f2965320950c7f1bbdd39105f8c34ca95034.tar.xz |
Fetch events from events_id in their own transactions
Diffstat (limited to 'synapse/storage/stream.py')
-rw-r--r-- | synapse/storage/stream.py | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/synapse/storage/stream.py b/synapse/storage/stream.py index 8045e17fd7..db9c2f0389 100644 --- a/synapse/storage/stream.py +++ b/synapse/storage/stream.py @@ -298,6 +298,7 @@ class StreamStore(SQLBaseStore): return self.runInteraction("paginate_room_events", f) + @defer.inlineCallbacks def get_recent_events_for_room(self, room_id, limit, end_token, with_feedback=False, from_token=None): # TODO (erikj): Handle compressed feedback @@ -349,20 +350,21 @@ class StreamStore(SQLBaseStore): else: token = (str(end_token), str(end_token)) - events = self._get_events_txn( - txn, - [r["event_id"] for r in rows], - get_prev_content=True - ) + return rows, token - self._set_before_and_after(events, rows) - - return events, token - - return self.runInteraction( + rows, token = yield self.runInteraction( "get_recent_events_for_room", get_recent_events_for_room_txn ) + events = yield self._get_events( + [r["event_id"] for r in rows], + get_prev_content=True + ) + + self._set_before_and_after(events, rows) + + defer.returnValue((events, token)) + @defer.inlineCallbacks def get_room_events_max_id(self, direction='f'): token = yield self._stream_id_gen.get_max_token(self) |