Run things as background processes

This fixes #3518, and ensures that we get useful logs and metrics for lots of
things that happen in the background.

(There are certainly more things that happen in the background; these are just
the common ones I've found running a single-process synapse locally).
This commit is contained in:
Richard van der Hoff 2018-07-18 14:35:24 +01:00
parent 65d6a0e477
commit 667fba68f3
7 changed files with 44 additions and 26 deletions

View file

@ -75,6 +75,10 @@ class Distributor(object):
self.pre_registration[name].append(observer)
def fire(self, name, *args, **kwargs):
"""Dispatches the given signal to the registered observers.
Runs the observers as a background process. Does not return a deferred.
"""
if name not in self.signals:
raise KeyError("%r does not have a signal named %s" % (self, name))