@@ -392,6 +392,16 @@ impl fmt::Display for TryLockError {
392
392
}
393
393
}
394
394
395
+ #[ unstable( feature = "file_lock" , issue = "130994" ) ]
396
+ impl From < TryLockError > for io:: Error {
397
+ fn from ( err : TryLockError ) -> io:: Error {
398
+ match err {
399
+ TryLockError :: Error ( err) => err,
400
+ TryLockError :: WouldBlock => io:: ErrorKind :: WouldBlock . into ( ) ,
401
+ }
402
+ }
403
+ }
404
+
395
405
impl File {
396
406
/// Attempts to open a file in read-only mode.
397
407
///
@@ -821,11 +831,14 @@ impl File {
821
831
///
822
832
/// fn main() -> std::io::Result<()> {
823
833
/// let f = File::create("foo.txt")?;
834
+ /// // Explicit handling of the WouldBlock error
824
835
/// match f.try_lock() {
825
836
/// Ok(_) => (),
826
837
/// Err(TryLockError::WouldBlock) => (), // Lock not acquired
827
838
/// Err(TryLockError::Error(err)) => return Err(err),
828
839
/// }
840
+ /// // Alternately, propagate the error as an io::Error
841
+ /// f.try_lock()?;
829
842
/// Ok(())
830
843
/// }
831
844
/// ```
@@ -882,11 +895,14 @@ impl File {
882
895
///
883
896
/// fn main() -> std::io::Result<()> {
884
897
/// let f = File::open("foo.txt")?;
898
+ /// // Explicit handling of the WouldBlock error
885
899
/// match f.try_lock_shared() {
886
900
/// Ok(_) => (),
887
901
/// Err(TryLockError::WouldBlock) => (), // Lock not acquired
888
902
/// Err(TryLockError::Error(err)) => return Err(err),
889
903
/// }
904
+ /// // Alternately, propagate the error as an io::Error
905
+ /// f.try_lock_shared()?;
890
906
///
891
907
/// Ok(())
892
908
/// }
0 commit comments