1 use windows_sys
::Win32
::Foundation
::HANDLE
;
2 use windows_sys
::Win32
::Storage
::FileSystem
::UnlockFile
;
5 use std
::os
::windows
::prelude
::*;
7 use super::utils
::syscall
;
11 pub struct RwLockReadGuard
<'lock
, T
: AsRawHandle
> {
12 pub(crate) lock
: &'lock RwLock
<T
>,
15 impl<T
: AsRawHandle
> ops
::Deref
for RwLockReadGuard
<'_
, T
> {
19 fn deref(&self) -> &Self::Target
{
24 impl<T
: AsRawHandle
> Drop
for RwLockReadGuard
<'_
, T
> {
27 let handle
= self.lock
.inner
.as_raw_handle() as HANDLE
;
28 let _
= syscall(unsafe { UnlockFile(handle, 0, 0, 1, 0) }
);