Count and loop

This commit is contained in:
Erik Johnston 2015-05-14 15:40:21 +01:00
parent 96c5b9f87c
commit 142934084a
2 changed files with 32 additions and 34 deletions

View file

@ -301,7 +301,7 @@ class SQLBaseStore(object):
self._event_fetch_lock = threading.Lock()
self._event_fetch_list = []
self._event_fetch_ongoing = False
self._event_fetch_ongoing = 0
self.database_engine = hs.database_engine

View file

@ -506,6 +506,7 @@ class EventsStore(SQLBaseStore):
def do_fetch(txn):
event_list = []
while True:
try:
with self._event_fetch_lock:
event_list = self._event_fetch_list
@ -538,9 +539,6 @@ class EventsStore(SQLBaseStore):
reactor.callFromThread(d.errback, e)
except:
pass
finally:
with self._event_fetch_lock:
self._event_fetch_ongoing = False
def cb(rows):
return defer.gatherResults([
@ -561,12 +559,12 @@ class EventsStore(SQLBaseStore):
(events, d)
)
if not self._event_fetch_ongoing:
if self._event_fetch_ongoing < 3:
self._event_fetch_ongoing += 1
self.runInteraction(
"do_fetch",
do_fetch
)
self._event_fetch_ongoing = True
res = yield d