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 <auradkar@google.com>
Reviewed-by: Noah Gold <nkgold@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
This commit is contained in:
Daniel Verkamp 2022-05-06 16:36:12 -07:00 committed by Chromeos LUCI
parent 8212e88f83
commit b5f8224312

View file

@ -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<T: PollToken> EventContext<T> {
// modified.
new.registered_handles
.lock()
.unwrap()
.raw_handles
.push(Descriptor(new.handles_modified_event.as_raw_descriptor()));
Ok(new)
@ -102,7 +96,7 @@ impl<T: PollToken> EventContext<T> {
}
fn add_for_event_impl(&self, trigger: EventTrigger<T>, _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<T: PollToken> EventContext<T> {
) -> 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<T: PollToken> EventContext<T> {
}
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<T: PollToken> EventContext<T> {
}
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<T: PollToken> EventContext<T> {
let raw_handles_list: Vec<RawHandle> = self
.registered_handles
.lock()
.unwrap()
.raw_handles
.clone()
.into_iter()
@ -230,7 +223,6 @@ impl<T: PollToken> EventContext<T> {
token: T::from_raw_token(
self.registered_handles
.lock()
.unwrap()
.triggers
.get(&Descriptor(event_to_return))
.unwrap()