Fix a deadlock

This commit is contained in:
Mike Dilger 2022-12-22 08:21:28 +13:00 committed by Mike Dilger
parent d5aeaf1ba5
commit 5e0c38462d
2 changed files with 5 additions and 1 deletions

View File

@ -124,6 +124,7 @@ pub async fn add_event(event: &Event) -> Result<(), Error> {
for tag in event.tags.iter() {
// Get some metadata from tags that could apply to multiple
// kinds of events
match tag {
Tag::Event {
id,
@ -168,7 +169,8 @@ pub async fn add_event(event: &Event) -> Result<(), Error> {
}
} else if event.kind == EventKind::EventDeletion {
// Find the other event
if let Some(deleted_feed_event) = { GLOBALS.feed_events.lock().await.get(id) } {
let maybe_other_event = GLOBALS.feed_events.lock().await.get(id).cloned();
if let Some(deleted_feed_event) = maybe_other_event {
match &deleted_feed_event.event {
None => {
// Can't verify the author. Take no action

View File

@ -230,6 +230,8 @@ impl Overlord {
"new_event" => {
let event: Event = serde_json::from_str(&bus_message.json_payload)?;
debug!("new event arrived: {}...", event.id.as_hex_string());
// If feed-related, send to the feed event processor
if event.kind == EventKind::TextNote
|| event.kind == EventKind::EncryptedDirectMessage