fix: actually check if lock was acquired (#2091)

This commit is contained in:
elsirion 2025-03-19 12:41:51 +03:00 committed by GitHub
parent 7790943190
commit d8ecdcaeec
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -44,7 +44,8 @@ impl FileLock {
/// Note that this operation is blocking, and should not be called in async contexts.
pub fn new_try_exclusive(file: File) -> Result<Self, (File, Option<io::Error>)> {
match FileExt::try_lock_exclusive(&file) {
Ok(_) => Ok(Self::new(file)),
Ok(true) => Ok(Self::new(file)),
Ok(false) => Err((file, None)),
Err(e) if e.raw_os_error() == fs4::lock_contended_error().raw_os_error() => {
Err((file, None))
}
@ -70,7 +71,8 @@ impl FileLock {
/// Note that this operation is blocking, and should not be called in async contexts.
pub fn new_try_shared(file: File) -> Result<Self, (File, Option<io::Error>)> {
match FileExt::try_lock_shared(&file) {
Ok(_) => Ok(Self::new(file)),
Ok(true) => Ok(Self::new(file)),
Ok(false) => Err((file, None)),
Err(e) if e.raw_os_error() == fs4::lock_contended_error().raw_os_error() => {
Err((file, None))
}