2771447c29
This fixes a race whereby: - User hits an endpoint. - No cached transaction so executes main code. - User hits same endpoint. - No cache transaction so executes main code. - Main code finishes executing and caches response and returns. - Main code finishes executing and caches response and returns. This race is common in the wild when Synapse is struggling under load. This commit fixes the race by: - User hits an endpoint. - Caches the promise to execute the main code and executes main code. - User hits same endpoint. - Yields on the same promise as the first request. - Main code finishes executing and returns, unblocking both requests. |
||
---|---|---|
.. | ||
__init__.py | ||
admin.py | ||
base.py | ||
directory.py | ||
events.py | ||
initial_sync.py | ||
login.py | ||
logout.py | ||
presence.py | ||
profile.py | ||
push_rule.py | ||
pusher.py | ||
register.py | ||
room.py | ||
transactions.py | ||
voip.py |