Auto merge of #137235 - matthiaskrgr:rollup-2kjua2t, r=matthiaskrgr
Rollup of 10 pull requests Successful merges: - #135711 (Do not ICE on default_field_value const with lifetimes) - #136599 (librustdoc: more usages of `Joined::joined`) - #136876 (Locking documentation updates) - #137000 (Deeply normalize item bounds in new solver) - #137126 (fix docs for inherent str constructors) - #137161 (Pattern Migration 2024: fix incorrect messages/suggestions when errors arise in macro expansions) - #137191 (Update mdbook and move error_index_generator) - #137203 (Improve MIR modification) - #137206 (Make E0599 a structured error) - #137218 (misc `layout_of` cleanup) r? `@ghost` `@rustbot` modify labels: rollup
This commit is contained in:
commit
f44efbf9e1
56 changed files with 685 additions and 729 deletions
|
@ -624,21 +624,21 @@ impl File {
|
|||
self.inner.datasync()
|
||||
}
|
||||
|
||||
/// Acquire an exclusive advisory lock on the file. Blocks until the lock can be acquired.
|
||||
/// Acquire an exclusive lock on the file. Blocks until the lock can be acquired.
|
||||
///
|
||||
/// This acquires an exclusive advisory lock; no other file handle to this file may acquire
|
||||
/// another lock.
|
||||
/// This acquires an exclusive lock; no other file handle to this file may acquire another lock.
|
||||
///
|
||||
/// If this file handle/descriptor, or a clone of it, already holds an advisory lock the exact
|
||||
/// behavior is unspecified and platform dependent, including the possibility that it will
|
||||
/// deadlock. However, if this method returns, then an exclusive lock is held.
|
||||
/// This lock may be advisory or mandatory. This lock is meant to interact with [`lock`],
|
||||
/// [`try_lock`], [`lock_shared`], [`try_lock_shared`], and [`unlock`]. Its interactions with
|
||||
/// other methods, such as [`read`] and [`write`] are platform specific, and it may or may not
|
||||
/// cause non-lockholders to block.
|
||||
///
|
||||
/// If this file handle/descriptor, or a clone of it, already holds an lock the exact behavior
|
||||
/// is unspecified and platform dependent, including the possibility that it will deadlock.
|
||||
/// However, if this method returns, then an exclusive lock is held.
|
||||
///
|
||||
/// If the file not open for writing, it is unspecified whether this function returns an error.
|
||||
///
|
||||
/// Note, this is an advisory lock meant to interact with [`lock_shared`], [`try_lock`],
|
||||
/// [`try_lock_shared`], and [`unlock`]. Its interactions with other methods, such as [`read`]
|
||||
/// and [`write`] are platform specific, and it may or may not cause non-lockholders to block.
|
||||
///
|
||||
/// The lock will be released when this file (along with any other file descriptors/handles
|
||||
/// duplicated or inherited from it) is closed, or if the [`unlock`] method is called.
|
||||
///
|
||||
|
@ -648,8 +648,12 @@ impl File {
|
|||
/// and the `LockFileEx` function on Windows with the `LOCKFILE_EXCLUSIVE_LOCK` flag. Note that,
|
||||
/// this [may change in the future][changes].
|
||||
///
|
||||
/// On Windows, locking a file will fail if the file is opened only for append. To lock a file,
|
||||
/// open it with one of `.read(true)`, `.read(true).append(true)`, or `.write(true)`.
|
||||
///
|
||||
/// [changes]: io#platform-specific-behavior
|
||||
///
|
||||
/// [`lock`]: File::lock
|
||||
/// [`lock_shared`]: File::lock_shared
|
||||
/// [`try_lock`]: File::try_lock
|
||||
/// [`try_lock_shared`]: File::try_lock_shared
|
||||
|
@ -674,18 +678,19 @@ impl File {
|
|||
self.inner.lock()
|
||||
}
|
||||
|
||||
/// Acquire a shared (non-exclusive) advisory lock on the file. Blocks until the lock can be acquired.
|
||||
/// Acquire a shared (non-exclusive) lock on the file. Blocks until the lock can be acquired.
|
||||
///
|
||||
/// This acquires a shared advisory lock; more than one file handle may hold a shared lock, but
|
||||
/// none may hold an exclusive lock at the same time.
|
||||
/// This acquires a shared lock; more than one file handle may hold a shared lock, but none may
|
||||
/// hold an exclusive lock at the same time.
|
||||
///
|
||||
/// If this file handle/descriptor, or a clone of it, already holds an advisory lock, the exact
|
||||
/// behavior is unspecified and platform dependent, including the possibility that it will
|
||||
/// deadlock. However, if this method returns, then a shared lock is held.
|
||||
/// This lock may be advisory or mandatory. This lock is meant to interact with [`lock`],
|
||||
/// [`try_lock`], [`lock_shared`], [`try_lock_shared`], and [`unlock`]. Its interactions with
|
||||
/// other methods, such as [`read`] and [`write`] are platform specific, and it may or may not
|
||||
/// cause non-lockholders to block.
|
||||
///
|
||||
/// Note, this is an advisory lock meant to interact with [`lock`], [`try_lock`],
|
||||
/// [`try_lock_shared`], and [`unlock`]. Its interactions with other methods, such as [`read`]
|
||||
/// and [`write`] are platform specific, and it may or may not cause non-lockholders to block.
|
||||
/// If this file handle/descriptor, or a clone of it, already holds an lock, the exact behavior
|
||||
/// is unspecified and platform dependent, including the possibility that it will deadlock.
|
||||
/// However, if this method returns, then a shared lock is held.
|
||||
///
|
||||
/// The lock will be released when this file (along with any other file descriptors/handles
|
||||
/// duplicated or inherited from it) is closed, or if the [`unlock`] method is called.
|
||||
|
@ -696,9 +701,13 @@ impl File {
|
|||
/// and the `LockFileEx` function on Windows. Note that, this
|
||||
/// [may change in the future][changes].
|
||||
///
|
||||
/// On Windows, locking a file will fail if the file is opened only for append. To lock a file,
|
||||
/// open it with one of `.read(true)`, `.read(true).append(true)`, or `.write(true)`.
|
||||
///
|
||||
/// [changes]: io#platform-specific-behavior
|
||||
///
|
||||
/// [`lock`]: File::lock
|
||||
/// [`lock_shared`]: File::lock_shared
|
||||
/// [`try_lock`]: File::try_lock
|
||||
/// [`try_lock_shared`]: File::try_lock_shared
|
||||
/// [`unlock`]: File::unlock
|
||||
|
@ -722,25 +731,24 @@ impl File {
|
|||
self.inner.lock_shared()
|
||||
}
|
||||
|
||||
/// Try to acquire an exclusive advisory lock on the file.
|
||||
/// Try to acquire an exclusive lock on the file.
|
||||
///
|
||||
/// Returns `Ok(false)` if a different lock is already held on this file (via another
|
||||
/// handle/descriptor).
|
||||
///
|
||||
/// This acquires an exclusive advisory lock; no other file handle to this file may acquire
|
||||
/// another lock.
|
||||
/// This acquires an exclusive lock; no other file handle to this file may acquire another lock.
|
||||
///
|
||||
/// If this file handle/descriptor, or a clone of it, already holds an advisory lock, the exact
|
||||
/// behavior is unspecified and platform dependent, including the possibility that it will
|
||||
/// deadlock. However, if this method returns `Ok(true)`, then it has acquired an exclusive
|
||||
/// lock.
|
||||
/// This lock may be advisory or mandatory. This lock is meant to interact with [`lock`],
|
||||
/// [`try_lock`], [`lock_shared`], [`try_lock_shared`], and [`unlock`]. Its interactions with
|
||||
/// other methods, such as [`read`] and [`write`] are platform specific, and it may or may not
|
||||
/// cause non-lockholders to block.
|
||||
///
|
||||
/// If this file handle/descriptor, or a clone of it, already holds an lock, the exact behavior
|
||||
/// is unspecified and platform dependent, including the possibility that it will deadlock.
|
||||
/// However, if this method returns `Ok(true)`, then it has acquired an exclusive lock.
|
||||
///
|
||||
/// If the file not open for writing, it is unspecified whether this function returns an error.
|
||||
///
|
||||
/// Note, this is an advisory lock meant to interact with [`lock`], [`lock_shared`],
|
||||
/// [`try_lock_shared`], and [`unlock`]. Its interactions with other methods, such as [`read`]
|
||||
/// and [`write`] are platform specific, and it may or may not cause non-lockholders to block.
|
||||
///
|
||||
/// The lock will be released when this file (along with any other file descriptors/handles
|
||||
/// duplicated or inherited from it) is closed, or if the [`unlock`] method is called.
|
||||
///
|
||||
|
@ -751,10 +759,14 @@ impl File {
|
|||
/// and `LOCKFILE_FAIL_IMMEDIATELY` flags. Note that, this
|
||||
/// [may change in the future][changes].
|
||||
///
|
||||
/// On Windows, locking a file will fail if the file is opened only for append. To lock a file,
|
||||
/// open it with one of `.read(true)`, `.read(true).append(true)`, or `.write(true)`.
|
||||
///
|
||||
/// [changes]: io#platform-specific-behavior
|
||||
///
|
||||
/// [`lock`]: File::lock
|
||||
/// [`lock_shared`]: File::lock_shared
|
||||
/// [`try_lock`]: File::try_lock
|
||||
/// [`try_lock_shared`]: File::try_lock_shared
|
||||
/// [`unlock`]: File::unlock
|
||||
/// [`read`]: Read::read
|
||||
|
@ -777,22 +789,23 @@ impl File {
|
|||
self.inner.try_lock()
|
||||
}
|
||||
|
||||
/// Try to acquire a shared (non-exclusive) advisory lock on the file.
|
||||
/// Try to acquire a shared (non-exclusive) lock on the file.
|
||||
///
|
||||
/// Returns `Ok(false)` if an exclusive lock is already held on this file (via another
|
||||
/// handle/descriptor).
|
||||
///
|
||||
/// This acquires a shared advisory lock; more than one file handle may hold a shared lock, but
|
||||
/// none may hold an exclusive lock at the same time.
|
||||
/// This acquires a shared lock; more than one file handle may hold a shared lock, but none may
|
||||
/// hold an exclusive lock at the same time.
|
||||
///
|
||||
/// If this file handle, or a clone of it, already holds an advisory lock, the exact behavior is
|
||||
/// This lock may be advisory or mandatory. This lock is meant to interact with [`lock`],
|
||||
/// [`try_lock`], [`lock_shared`], [`try_lock_shared`], and [`unlock`]. Its interactions with
|
||||
/// other methods, such as [`read`] and [`write`] are platform specific, and it may or may not
|
||||
/// cause non-lockholders to block.
|
||||
///
|
||||
/// If this file handle, or a clone of it, already holds an lock, the exact behavior is
|
||||
/// unspecified and platform dependent, including the possibility that it will deadlock.
|
||||
/// However, if this method returns `Ok(true)`, then it has acquired a shared lock.
|
||||
///
|
||||
/// Note, this is an advisory lock meant to interact with [`lock`], [`try_lock`],
|
||||
/// [`try_lock`], and [`unlock`]. Its interactions with other methods, such as [`read`]
|
||||
/// and [`write`] are platform specific, and it may or may not cause non-lockholders to block.
|
||||
///
|
||||
/// The lock will be released when this file (along with any other file descriptors/handles
|
||||
/// duplicated or inherited from it) is closed, or if the [`unlock`] method is called.
|
||||
///
|
||||
|
@ -803,11 +816,15 @@ impl File {
|
|||
/// `LOCKFILE_FAIL_IMMEDIATELY` flag. Note that, this
|
||||
/// [may change in the future][changes].
|
||||
///
|
||||
/// On Windows, locking a file will fail if the file is opened only for append. To lock a file,
|
||||
/// open it with one of `.read(true)`, `.read(true).append(true)`, or `.write(true)`.
|
||||
///
|
||||
/// [changes]: io#platform-specific-behavior
|
||||
///
|
||||
/// [`lock`]: File::lock
|
||||
/// [`lock_shared`]: File::lock_shared
|
||||
/// [`try_lock`]: File::try_lock
|
||||
/// [`try_lock_shared`]: File::try_lock_shared
|
||||
/// [`unlock`]: File::unlock
|
||||
/// [`read`]: Read::read
|
||||
/// [`write`]: Write::write
|
||||
|
@ -844,6 +861,9 @@ impl File {
|
|||
/// and the `UnlockFile` function on Windows. Note that, this
|
||||
/// [may change in the future][changes].
|
||||
///
|
||||
/// On Windows, locking a file will fail if the file is opened only for append. To lock a file,
|
||||
/// open it with one of `.read(true)`, `.read(true).append(true)`, or `.write(true)`.
|
||||
///
|
||||
/// [changes]: io#platform-specific-behavior
|
||||
///
|
||||
/// # Examples
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue