sync: mark lock guards with #[clippy::has_significant_drop] (#5422)

This commit is contained in:
Caio
2023-02-09 11:20:09 +01:00
committed by GitHub
parent d96bbf0465
commit d6dbefcdc0
8 changed files with 11 additions and 0 deletions
+3
View File
@@ -141,6 +141,7 @@ pub struct Mutex<T: ?Sized> {
/// ///
/// The lock is automatically released whenever the guard is dropped, at which /// The lock is automatically released whenever the guard is dropped, at which
/// point `lock` will succeed yet again. /// point `lock` will succeed yet again.
#[clippy::has_significant_drop]
#[must_use = "if unused the Mutex will immediately unlock"] #[must_use = "if unused the Mutex will immediately unlock"]
pub struct MutexGuard<'a, T: ?Sized> { pub struct MutexGuard<'a, T: ?Sized> {
#[cfg(all(tokio_unstable, feature = "tracing"))] #[cfg(all(tokio_unstable, feature = "tracing"))]
@@ -163,6 +164,7 @@ pub struct MutexGuard<'a, T: ?Sized> {
/// point `lock` will succeed yet again. /// point `lock` will succeed yet again.
/// ///
/// [`Arc`]: std::sync::Arc /// [`Arc`]: std::sync::Arc
#[clippy::has_significant_drop]
pub struct OwnedMutexGuard<T: ?Sized> { pub struct OwnedMutexGuard<T: ?Sized> {
#[cfg(all(tokio_unstable, feature = "tracing"))] #[cfg(all(tokio_unstable, feature = "tracing"))]
resource_span: tracing::Span, resource_span: tracing::Span,
@@ -174,6 +176,7 @@ pub struct OwnedMutexGuard<T: ?Sized> {
/// This can be used to hold a subfield of the protected data. /// This can be used to hold a subfield of the protected data.
/// ///
/// [`MutexGuard::map`]: method@MutexGuard::map /// [`MutexGuard::map`]: method@MutexGuard::map
#[clippy::has_significant_drop]
#[must_use = "if unused the Mutex will immediately unlock"] #[must_use = "if unused the Mutex will immediately unlock"]
pub struct MappedMutexGuard<'a, T: ?Sized> { pub struct MappedMutexGuard<'a, T: ?Sized> {
s: &'a semaphore::Semaphore, s: &'a semaphore::Semaphore,
@@ -14,6 +14,7 @@ use std::sync::Arc;
/// ///
/// [`read_owned`]: method@crate::sync::RwLock::read_owned /// [`read_owned`]: method@crate::sync::RwLock::read_owned
/// [`RwLock`]: struct@crate::sync::RwLock /// [`RwLock`]: struct@crate::sync::RwLock
#[clippy::has_significant_drop]
pub struct OwnedRwLockReadGuard<T: ?Sized, U: ?Sized = T> { pub struct OwnedRwLockReadGuard<T: ?Sized, U: ?Sized = T> {
#[cfg(all(tokio_unstable, feature = "tracing"))] #[cfg(all(tokio_unstable, feature = "tracing"))]
pub(super) resource_span: tracing::Span, pub(super) resource_span: tracing::Span,
@@ -15,6 +15,7 @@ use std::sync::Arc;
/// ///
/// [`write_owned`]: method@crate::sync::RwLock::write_owned /// [`write_owned`]: method@crate::sync::RwLock::write_owned
/// [`RwLock`]: struct@crate::sync::RwLock /// [`RwLock`]: struct@crate::sync::RwLock
#[clippy::has_significant_drop]
pub struct OwnedRwLockWriteGuard<T: ?Sized> { pub struct OwnedRwLockWriteGuard<T: ?Sized> {
#[cfg(all(tokio_unstable, feature = "tracing"))] #[cfg(all(tokio_unstable, feature = "tracing"))]
pub(super) resource_span: tracing::Span, pub(super) resource_span: tracing::Span,
@@ -14,6 +14,7 @@ use std::sync::Arc;
/// ///
/// [mapping]: method@crate::sync::OwnedRwLockWriteGuard::map /// [mapping]: method@crate::sync::OwnedRwLockWriteGuard::map
/// [`OwnedRwLockWriteGuard`]: struct@crate::sync::OwnedRwLockWriteGuard /// [`OwnedRwLockWriteGuard`]: struct@crate::sync::OwnedRwLockWriteGuard
#[clippy::has_significant_drop]
pub struct OwnedRwLockMappedWriteGuard<T: ?Sized, U: ?Sized = T> { pub struct OwnedRwLockMappedWriteGuard<T: ?Sized, U: ?Sized = T> {
#[cfg(all(tokio_unstable, feature = "tracing"))] #[cfg(all(tokio_unstable, feature = "tracing"))]
pub(super) resource_span: tracing::Span, pub(super) resource_span: tracing::Span,
+1
View File
@@ -12,6 +12,7 @@ use std::ops;
/// ///
/// [`read`]: method@crate::sync::RwLock::read /// [`read`]: method@crate::sync::RwLock::read
/// [`RwLock`]: struct@crate::sync::RwLock /// [`RwLock`]: struct@crate::sync::RwLock
#[clippy::has_significant_drop]
#[must_use = "if unused the RwLock will immediately unlock"] #[must_use = "if unused the RwLock will immediately unlock"]
pub struct RwLockReadGuard<'a, T: ?Sized> { pub struct RwLockReadGuard<'a, T: ?Sized> {
#[cfg(all(tokio_unstable, feature = "tracing"))] #[cfg(all(tokio_unstable, feature = "tracing"))]
+1
View File
@@ -14,6 +14,7 @@ use std::ops;
/// ///
/// [`write`]: method@crate::sync::RwLock::write /// [`write`]: method@crate::sync::RwLock::write
/// [`RwLock`]: struct@crate::sync::RwLock /// [`RwLock`]: struct@crate::sync::RwLock
#[clippy::has_significant_drop]
#[must_use = "if unused the RwLock will immediately unlock"] #[must_use = "if unused the RwLock will immediately unlock"]
pub struct RwLockWriteGuard<'a, T: ?Sized> { pub struct RwLockWriteGuard<'a, T: ?Sized> {
#[cfg(all(tokio_unstable, feature = "tracing"))] #[cfg(all(tokio_unstable, feature = "tracing"))]
@@ -13,6 +13,7 @@ use std::ops;
/// ///
/// [mapping]: method@crate::sync::RwLockWriteGuard::map /// [mapping]: method@crate::sync::RwLockWriteGuard::map
/// [`RwLockWriteGuard`]: struct@crate::sync::RwLockWriteGuard /// [`RwLockWriteGuard`]: struct@crate::sync::RwLockWriteGuard
#[clippy::has_significant_drop]
pub struct RwLockMappedWriteGuard<'a, T: ?Sized> { pub struct RwLockMappedWriteGuard<'a, T: ?Sized> {
#[cfg(all(tokio_unstable, feature = "tracing"))] #[cfg(all(tokio_unstable, feature = "tracing"))]
pub(super) resource_span: tracing::Span, pub(super) resource_span: tracing::Span,
+2
View File
@@ -89,6 +89,7 @@ pub struct Semaphore {
/// ///
/// [`acquire`]: crate::sync::Semaphore::acquire() /// [`acquire`]: crate::sync::Semaphore::acquire()
#[must_use] #[must_use]
#[clippy::has_significant_drop]
#[derive(Debug)] #[derive(Debug)]
pub struct SemaphorePermit<'a> { pub struct SemaphorePermit<'a> {
sem: &'a Semaphore, sem: &'a Semaphore,
@@ -101,6 +102,7 @@ pub struct SemaphorePermit<'a> {
/// ///
/// [`acquire_owned`]: crate::sync::Semaphore::acquire_owned() /// [`acquire_owned`]: crate::sync::Semaphore::acquire_owned()
#[must_use] #[must_use]
#[clippy::has_significant_drop]
#[derive(Debug)] #[derive(Debug)]
pub struct OwnedSemaphorePermit { pub struct OwnedSemaphorePermit {
sem: Arc<Semaphore>, sem: Arc<Semaphore>,