From b21f5764309f9f65666016a9069e1b938935e6f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Fri, 28 Feb 2020 16:29:48 +0200 Subject: [PATCH] Add #[must_use] attribute to mutex guards / stream lock It's usually a mistake if creating one of these and immediately dropping them again as that would immediately unlock the mutex again. --- gstreamer-base/src/utils.rs | 1 + gstreamer/src/pad.rs | 1 + gstreamer/src/utils.rs | 1 + 3 files changed, 3 insertions(+) diff --git a/gstreamer-base/src/utils.rs b/gstreamer-base/src/utils.rs index dca8cf691..ff456cd06 100644 --- a/gstreamer-base/src/utils.rs +++ b/gstreamer-base/src/utils.rs @@ -9,6 +9,7 @@ use glib::translate::mut_override; use glib_sys; +#[must_use = "if unused the Mutex will immediately unlock"] pub struct MutexGuard<'a>(&'a glib_sys::GMutex); impl<'a> MutexGuard<'a> { diff --git a/gstreamer/src/pad.rs b/gstreamer/src/pad.rs index ee1118045..1b7062a38 100644 --- a/gstreamer/src/pad.rs +++ b/gstreamer/src/pad.rs @@ -104,6 +104,7 @@ unsafe impl<'a> Send for PadProbeData<'a> {} unsafe impl<'a> Sync for PadProbeData<'a> {} #[derive(Debug)] +#[must_use = "if unused the StreamLock will immediately unlock"] pub struct StreamLock(Pad); impl Drop for StreamLock { fn drop(&mut self) { diff --git a/gstreamer/src/utils.rs b/gstreamer/src/utils.rs index dca8cf691..ff456cd06 100644 --- a/gstreamer/src/utils.rs +++ b/gstreamer/src/utils.rs @@ -9,6 +9,7 @@ use glib::translate::mut_override; use glib_sys; +#[must_use = "if unused the Mutex will immediately unlock"] pub struct MutexGuard<'a>(&'a glib_sys::GMutex); impl<'a> MutexGuard<'a> {