diff options
Diffstat (limited to 'vendor/fd-lock/src/lib.rs')
-rw-r--r-- | vendor/fd-lock/src/lib.rs | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/vendor/fd-lock/src/lib.rs b/vendor/fd-lock/src/lib.rs new file mode 100644 index 000000000..9d3d6192b --- /dev/null +++ b/vendor/fd-lock/src/lib.rs @@ -0,0 +1,43 @@ +//! Advisory reader-writer locks for files. +//! +//! # Notes on Advisory Locks +//! +//! "advisory locks" are locks which programs must opt-in to adhere to. This +//! means that they can be used to coordinate file access, but not prevent +//! access. Use this to coordinate file access between multiple instances of the +//! same program. But do not use this to prevent actors from accessing or +//! modifying files. +//! +//! # Example +//! +//! ```no_run +//! # use std::io; +//! use std::io::prelude::*; +//! use std::fs::File; +//! use fd_lock::RwLock; +//! +//! # fn main() -> io::Result<()> { +//! // Lock a file and write to it. +//! let mut f = RwLock::new(File::open("foo.txt")?); +//! write!(f.write()?, "chashu cat")?; +//! +//! // A lock can also be held across multiple operations. +//! let mut f = f.write()?; +//! write!(f, "nori cat")?; +//! write!(f, "bird!")?; +//! # Ok(()) } +//! ``` + +#![forbid(future_incompatible)] +#![deny(missing_debug_implementations, nonstandard_style)] +#![cfg_attr(doc, warn(missing_docs, rustdoc::missing_doc_code_examples))] + +mod read_guard; +mod rw_lock; +mod write_guard; + +pub(crate) mod sys; + +pub use read_guard::RwLockReadGuard; +pub use rw_lock::RwLock; +pub use write_guard::RwLockWriteGuard; |