From 41ff44ba4e4bdd7aa77bfbfce201b89c7990d9e4 Mon Sep 17 00:00:00 2001 From: Erk- Date: Tue, 30 Oct 2018 15:08:49 +0100 Subject: Fix cache write lock timer (#423) --- src/client/dispatch.rs | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'src/client') diff --git a/src/client/dispatch.rs b/src/client/dispatch.rs index 3cc22e4..7ac8148 100644 --- a/src/client/dispatch.rs +++ b/src/client/dispatch.rs @@ -36,19 +36,20 @@ macro_rules! update { { #[cfg(feature = "cache")] { - if let Some(duration) = *CACHE_TRY_WRITE_DURATION { - CACHE.try_write_for(duration) - .and_then(|mut lock| lock.update(&mut $event)) - .or_else(|| { + match *CACHE_TRY_WRITE_DURATION { + Some(duration) => { + if let Some(mut lock) = CACHE.try_write_for(duration) { + lock.update(&mut $event) + } else { warn!( "[dispatch] Possible deadlock: couldn't unlock cache to update with event: {:?}", $event, ); - None - }) - } else { - CACHE.write().update(&mut $event) + }}, + None => { + CACHE.write().update(&mut $event) + }, } } } -- cgit v1.2.3