refactor(service): Use SyncRwLock and SyncMutex for in-memory services

Convert in-memory data structures in appservice, rooms::typing, and sync
wakers to use SyncRwLock and SyncMutex. Drop appservice locks before
making outbound network requests in room alias queries and federation
invites.
This commit is contained in:
Jade Ellis committed 2026-10-28 21:48:22 +00:00
1 parent 5297e01357
commit 24b1e2ebe8
20 files changed
+126 -160

No files matched your search

+1 -5
View File
@@ -405,11 +405,7 @@ impl super::Service {
"Username is not in this appservice's namespace."
)));
}
} else if self
.services
.appservice
.is_exclusive_user_id(&user_id)
.await
} else if self.services.appservice.is_exclusive_user_id(&user_id)
&& !emergency_mode_enabled
{
return Err!(Request(Exclusive("Username is reserved by an appservice.")));
+1 -7
View File
@@ -175,13 +175,7 @@ impl super::Service {
}
// Check for token collision with appservices
if self
.services
.appservice
.find_from_token(&token)
.await
.is_ok()
{
if self.services.appservice.find_from_token(&token).is_ok() {
return Err!(Request(InvalidParam(
"Token conflicts with an existing appservice token"
)));