Sha256: 2ddd7eda4df96daa3bd4f43dae112c512ed34e4f006fa34c1bd7f33462443736
Contents?: true
Size: 752 Bytes
Versions: 31
Compression:
Stored size: 752 Bytes
Contents
use std::os::windows::io::AsHandle; use windows_sys::Win32::Foundation::HANDLE; use windows_sys::Win32::Storage::FileSystem::UnlockFile; use std::ops; use std::os::windows::prelude::*; use super::utils::syscall; use super::RwLock; #[derive(Debug)] pub struct RwLockReadGuard<'lock, T: AsHandle> { pub(crate) lock: &'lock RwLock<T>, } impl<T: AsHandle> ops::Deref for RwLockReadGuard<'_, T> { type Target = T; #[inline] fn deref(&self) -> &Self::Target { &self.lock.inner } } impl<T: AsHandle> Drop for RwLockReadGuard<'_, T> { #[inline] fn drop(&mut self) { let handle = self.lock.inner.as_handle().as_raw_handle() as HANDLE; let _ = syscall(unsafe { UnlockFile(handle, 0, 0, 1, 0) }); } }
Version data entries
31 entries across 31 versions & 1 rubygems