summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--changelog.d/15772.doc1
-rw-r--r--synapse/util/__init__.py5
2 files changed, 6 insertions, 0 deletions
diff --git a/changelog.d/15772.doc b/changelog.d/15772.doc
new file mode 100644

index 0000000000..4d6c933c71 --- /dev/null +++ b/changelog.d/15772.doc
@@ -0,0 +1 @@ +Document `looping_call()` functionality that will wait for the given function to finish before scheduling another. diff --git a/synapse/util/__init__.py b/synapse/util/__init__.py
index 7ea0c4c36b..9f3b8741c1 100644 --- a/synapse/util/__init__.py +++ b/synapse/util/__init__.py
@@ -116,6 +116,11 @@ class Clock: Waits `msec` initially before calling `f` for the first time. + If the function given to `looping_call` returns an awaitable/deferred, the next + call isn't scheduled until after the returned awaitable has finished. We get + this functionality thanks to this function being a thin wrapper around + `twisted.internet.task.LoopingCall`. + Note that the function will be called with no logcontext, so if it is anything other than trivial, you probably want to wrap it in run_as_background_process.