mirror of
https://mau.dev/maunium/synapse.git
synced 2024-06-17 01:59:26 +02:00
When a lot of locks are waiting for a single lock, notifying all locks independently with `call_later` on each release is really costly and incurs some kind of async contention, where the CPU is spinning a lot for not much. The included test is taking around 30s before the change, and 0.5s after. It was found following failing tests with https://github.com/element-hq/synapse/pull/16827. |
||
---|---|---|
.. | ||
_scripts | ||
api | ||
app | ||
appservice | ||
config | ||
crypto | ||
events | ||
federation | ||
handlers | ||
http | ||
logging | ||
media | ||
metrics | ||
module_api | ||
push | ||
replication | ||
res | ||
rest | ||
server_notices | ||
spam_checker_api | ||
state | ||
static | ||
storage | ||
streams | ||
synapse_rust | ||
types | ||
util | ||
__init__.py | ||
_pydantic_compat.py | ||
event_auth.py | ||
notifier.py | ||
py.typed | ||
server.py | ||
visibility.py |