diff options
author | Erik Johnston <erikj@jki.re> | 2016-08-02 09:50:37 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-08-02 09:50:37 +0100 |
commit | f14cd95342cb7cb674b5d7efa9177365345bc17f (patch) | |
tree | b6746ee20bc1f3b22472be7c4e7f881255cf1838 | |
parent | missing --upgrade (diff) | |
parent | Ignore AlreadyCalled errors on timer cancel (diff) | |
download | synapse-f14cd95342cb7cb674b5d7efa9177365345bc17f.tar.xz |
Merge pull request #970 from matrix-org/erikj/clock
Ignore AlreadyCalled errors on timer cancel
-rw-r--r-- | synapse/push/emailpusher.py | 12 | ||||
-rw-r--r-- | synapse/push/httppusher.py | 7 |
2 files changed, 16 insertions, 3 deletions
diff --git a/synapse/push/emailpusher.py b/synapse/push/emailpusher.py index e224b68291..6600c9cd55 100644 --- a/synapse/push/emailpusher.py +++ b/synapse/push/emailpusher.py @@ -14,6 +14,7 @@ # limitations under the License. from twisted.internet import defer, reactor +from twisted.internet.error import AlreadyCalled, AlreadyCancelled import logging @@ -92,7 +93,11 @@ class EmailPusher(object): def on_stop(self): if self.timed_call: - self.timed_call.cancel() + try: + self.timed_call.cancel() + except (AlreadyCalled, AlreadyCancelled): + pass + self.timed_call = None @defer.inlineCallbacks def on_new_notifications(self, min_stream_ordering, max_stream_ordering): @@ -189,7 +194,10 @@ class EmailPusher(object): soonest_due_at = should_notify_at if self.timed_call is not None: - self.timed_call.cancel() + try: + self.timed_call.cancel() + except (AlreadyCalled, AlreadyCancelled): + pass self.timed_call = None if soonest_due_at is not None: diff --git a/synapse/push/httppusher.py b/synapse/push/httppusher.py index 9a7db61220..feedb075e2 100644 --- a/synapse/push/httppusher.py +++ b/synapse/push/httppusher.py @@ -16,6 +16,7 @@ from synapse.push import PusherConfigException from twisted.internet import defer, reactor +from twisted.internet.error import AlreadyCalled, AlreadyCancelled import logging import push_rule_evaluator @@ -109,7 +110,11 @@ class HttpPusher(object): def on_stop(self): if self.timed_call: - self.timed_call.cancel() + try: + self.timed_call.cancel() + except (AlreadyCalled, AlreadyCancelled): + pass + self.timed_call = None @defer.inlineCallbacks def _process(self): |