@@ -392,6 +392,16 @@ impl fmt::Display for TryLockError {
392392}
393393}
394394
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+
395405impl File {
396406/// Attempts to open a file in read-only mode.
397407///
@@ -821,11 +831,14 @@ impl File {
821831///
822832/// fn main() -> std::io::Result<()> {
823833/// let f = File::create("foo.txt")?;
834+ /// // Explicit handling of the WouldBlock error
824835/// match f.try_lock() {
825836/// Ok(_) => (),
826837/// Err(TryLockError::WouldBlock) => (), // Lock not acquired
827838/// Err(TryLockError::Error(err)) => return Err(err),
828839/// }
840+ /// // Alternately, propagate the error as an io::Error
841+ /// f.try_lock()?;
829842/// Ok(())
830843/// }
831844/// ```
@@ -882,11 +895,14 @@ impl File {
882895///
883896/// fn main() -> std::io::Result<()> {
884897/// let f = File::open("foo.txt")?;
898+ /// // Explicit handling of the WouldBlock error
885899/// match f.try_lock_shared() {
886900/// Ok(_) => (),
887901/// Err(TryLockError::WouldBlock) => (), // Lock not acquired
888902/// Err(TryLockError::Error(err)) => return Err(err),
889903/// }
904+ /// // Alternately, propagate the error as an io::Error
905+ /// f.try_lock_shared()?;
890906///
891907/// Ok(())
892908/// }
0 commit comments