我想在使用Mutex时通过'if let'语句创建一个小的作用域,以便能够尽快解锁它.但我在编译时收到了"无可辩驳的if let
模式"的警告.有没有更合适的方式写呢?
use std::sync::Mutex;
fn main()
{
let sources = Mutex::new(vec![1,2,3]);
// this get warning: irrefutable `if let` pattern
if let mut vec = sources.lock().unwrap() {
vec.push(4);
};
// No deadlock will occur here
let mut vec = sources.lock().unwrap();
vec.push(5);
// deadlock will occur here, so I'd like the mutex guard dropped as quickly as possible.
let mut vec2 = sources.lock().unwrap();
vec2.push(6);
}