Skip to content

Commit

Permalink
Rollup merge of rust-lang#86783 - mark-i-m:mutex-drop-unsized, r=Xanewok
Browse files Browse the repository at this point in the history
Move Mutex::unlock to T: ?Sized

r? `@mbrubeck`

cc rust-lang#81872
  • Loading branch information
JohnTitor authored Jul 1, 2021
2 parents 582529c + 057bc91 commit d06b6f9
Showing 1 changed file with 20 additions and 20 deletions.
40 changes: 20 additions & 20 deletions library/std/src/sync/mutex.rs
Original file line number Diff line number Diff line change
Expand Up @@ -217,26 +217,6 @@ impl<T> Mutex<T> {
data: UnsafeCell::new(t),
}
}

/// Immediately drops the guard, and consequently unlocks the mutex.
///
/// This function is equivalent to calling [`drop`] on the guard but is more self-documenting.
/// Alternately, the guard will be automatically dropped when it goes out of scope.
///
/// ```
/// #![feature(mutex_unlock)]
///
/// use std::sync::Mutex;
/// let mutex = Mutex::new(0);
///
/// let mut guard = mutex.lock().unwrap();
/// *guard += 20;
/// Mutex::unlock(guard);
/// ```
#[unstable(feature = "mutex_unlock", issue = "81872")]
pub fn unlock(guard: MutexGuard<'_, T>) {
drop(guard);
}
}

impl<T: ?Sized> Mutex<T> {
Expand Down Expand Up @@ -333,6 +313,26 @@ impl<T: ?Sized> Mutex<T> {
}
}

/// Immediately drops the guard, and consequently unlocks the mutex.
///
/// This function is equivalent to calling [`drop`] on the guard but is more self-documenting.
/// Alternately, the guard will be automatically dropped when it goes out of scope.
///
/// ```
/// #![feature(mutex_unlock)]
///
/// use std::sync::Mutex;
/// let mutex = Mutex::new(0);
///
/// let mut guard = mutex.lock().unwrap();
/// *guard += 20;
/// Mutex::unlock(guard);
/// ```
#[unstable(feature = "mutex_unlock", issue = "81872")]
pub fn unlock(guard: MutexGuard<'_, T>) {
drop(guard);
}

/// Determines whether the mutex is poisoned.
///
/// If another thread is active, the mutex can still become poisoned at any
Expand Down

0 comments on commit d06b6f9

Please sign in to comment.