diff --git a/crates/lune-std/src/globals/require/context.rs b/crates/lune-std/src/globals/require/context.rs index c38c694..5f0329c 100644 --- a/crates/lune-std/src/globals/require/context.rs +++ b/crates/lune-std/src/globals/require/context.rs @@ -102,8 +102,13 @@ impl RequireContext { let pending = data_ref.pending.try_lock()?; - if let Some(a) = pending.get(&path_abs) { - a.subscribe().recv().await?; + if let Some(sender) = pending.get(&path_abs) { + let mut receiver = sender.subscribe(); + + // unlock mutex before using async + drop(pending); + + receiver.recv().await?; } }