From b5f8224312cfb65f4d7e339030d61342471dd505 Mon Sep 17 00:00:00 2001 From: Daniel Verkamp Date: Fri, 6 May 2022 16:36:12 -0700 Subject: [PATCH] base: windows: use sync::Mutex to avoid unwrap() Switch the uses of std::sync::Mutex to our custom sync::Mutex, which panics internally if lock() fails. This helps to reduce the instances of unwrap(), making it easier to review and understand the code. BUG=b:213153157 TEST=tools/dev_container tools/run_tests --target=host --arch=win64 Change-Id: I99bfc85967152f50045e64293104de788a5d3829 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/3633108 Reviewed-by: Vikram Auradkar Reviewed-by: Noah Gold Tested-by: kokoro Commit-Queue: Daniel Verkamp --- base/src/sys/windows/wait.rs | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/base/src/sys/windows/wait.rs b/base/src/sys/windows/wait.rs index a3baf72a49..43e5cde04e 100644 --- a/base/src/sys/windows/wait.rs +++ b/base/src/sys/windows/wait.rs @@ -2,14 +2,9 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -use std::{ - cmp::min, - collections::HashMap, - os::windows::io::RawHandle, - sync::{Arc, Mutex}, - time::Duration, -}; +use std::{cmp::min, collections::HashMap, os::windows::io::RawHandle, sync::Arc, time::Duration}; +use sync::Mutex; use winapi::{ shared::{ minwindef::{DWORD, FALSE}, @@ -66,7 +61,6 @@ impl EventContext { // modified. new.registered_handles .lock() - .unwrap() .raw_handles .push(Descriptor(new.handles_modified_event.as_raw_descriptor())); Ok(new) @@ -102,7 +96,7 @@ impl EventContext { } fn add_for_event_impl(&self, trigger: EventTrigger, _event_type: EventType) -> Result<()> { - let mut registered_handles_locked = self.registered_handles.lock().unwrap(); + let mut registered_handles_locked = self.registered_handles.lock(); if registered_handles_locked .triggers .contains_key(&Descriptor(trigger.event)) @@ -129,7 +123,7 @@ impl EventContext { ) -> Result<()> { let trigger = EventTrigger::from(descriptor, token); - let mut registered_handles_locked = self.registered_handles.lock().unwrap(); + let mut registered_handles_locked = self.registered_handles.lock(); if let std::collections::hash_map::Entry::Occupied(mut e) = registered_handles_locked .triggers .entry(Descriptor(trigger.event)) @@ -142,7 +136,7 @@ impl EventContext { } pub fn delete(&self, event_handle: &dyn AsRawDescriptor) -> Result<()> { - let mut registered_handles_locked = self.registered_handles.lock().unwrap(); + let mut registered_handles_locked = self.registered_handles.lock(); let result = registered_handles_locked .triggers .remove(&Descriptor(event_handle.as_raw_descriptor())); @@ -160,7 +154,7 @@ impl EventContext { } pub fn clear(&self) -> Result<()> { - let mut registered_handles_locked = self.registered_handles.lock().unwrap(); + let mut registered_handles_locked = self.registered_handles.lock(); registered_handles_locked.triggers.clear(); registered_handles_locked.raw_handles.clear(); @@ -179,7 +173,6 @@ impl EventContext { let raw_handles_list: Vec = self .registered_handles .lock() - .unwrap() .raw_handles .clone() .into_iter() @@ -230,7 +223,6 @@ impl EventContext { token: T::from_raw_token( self.registered_handles .lock() - .unwrap() .triggers .get(&Descriptor(event_to_return)) .unwrap()