Przeglądaj źródła

Don't panic if the duration is negative in try_get_or_insert (#3413)

Evan Almloff 6 miesięcy temu
rodzic
commit
21fdecd219
1 zmienionych plików z 7 dodań i 4 usunięć
  1. 7 4
      packages/isrg/src/memory_cache.rs

+ 7 - 4
packages/isrg/src/memory_cache.rs

@@ -55,10 +55,13 @@ impl InMemoryCache {
             let age = elapsed.num_seconds();
             // The cache entry is out of date, so we need to remove it.
             if let Some(invalidate_after) = self.invalidate_after {
-                if elapsed.to_std().unwrap() > invalidate_after {
-                    tracing::trace!("memory cache out of date");
-                    memory_cache.pop(route);
-                    return Ok(None);
+                // If we can't convert to a std duration, the duration is negative and hasn't elapsed yet.
+                if let Ok(std_elapsed) = elapsed.to_std() {
+                    if std_elapsed > invalidate_after {
+                        tracing::trace!("memory cache out of date");
+                        memory_cache.pop(route);
+                        return Ok(None);
+                    }
                 }
             }