[fractal/remove-clippy-warnings: 7/7] clippy: Use AtomicBool instead of Mutex<bool>



commit bd1c55b5f08d0176156ca56527ba544e9ae37f01
Author: Daniel GarcĂ­a Moreno <dani danigm net>
Date:   Fri Jul 3 16:25:13 2020 +0200

    clippy: Use AtomicBool instead of Mutex<bool>
    
    https://rust-lang.github.io/rust-clippy/master/index.html#mutex_atomic

 fractal-gtk/src/widgets/media_viewer.rs | 21 +++++++++++----------
 fractal-gtk/src/widgets/roomlist.rs     | 13 +++++++------
 2 files changed, 18 insertions(+), 16 deletions(-)
---
diff --git a/fractal-gtk/src/widgets/media_viewer.rs b/fractal-gtk/src/widgets/media_viewer.rs
index 3a91730e..3d4c0dd9 100644
--- a/fractal-gtk/src/widgets/media_viewer.rs
+++ b/fractal-gtk/src/widgets/media_viewer.rs
@@ -26,6 +26,7 @@ use crate::widgets::message_menu::MessageMenu;
 use crate::widgets::ErrorDialog;
 use crate::widgets::PlayerExt;
 use crate::widgets::{MediaPlayer, VideoPlayerWidget};
+use std::sync::atomic::{AtomicBool, Ordering};
 use std::sync::mpsc::channel;
 use std::sync::mpsc::TryRecvError;
 use std::sync::mpsc::{Receiver, Sender};
@@ -744,21 +745,21 @@ impl MediaViewer {
             });
         self.data.borrow_mut().double_click_handler_id = Some(id);
 
-        let header_hovered: Arc<Mutex<bool>> = Arc::new(Mutex::new(false));
-        let nav_hovered: Arc<Mutex<bool>> = Arc::new(Mutex::new(false));
+        let header_hovered: Arc<AtomicBool> = Arc::new(AtomicBool::new(false));
+        let nav_hovered: Arc<AtomicBool> = Arc::new(AtomicBool::new(false));
         let ui = self.builder.clone();
         let headerbar_revealer = ui
             .get_object::<gtk::Revealer>("headerbar_revealer")
             .expect("Can't find headerbar_revealer in ui file.");
 
         headerbar_revealer.connect_enter_notify_event(clone!(header_hovered => move |_, _| {
-            *(header_hovered.lock().unwrap()) = true;
+            header_hovered.store(true, Ordering::SeqCst);
 
             Inhibit(false)
         }));
 
         headerbar_revealer.connect_leave_notify_event(clone!(header_hovered => move |_, _| {
-            *(header_hovered.lock().unwrap()) = false;
+            header_hovered.store(false, Ordering::SeqCst);
 
             Inhibit(false)
         }));
@@ -768,12 +769,12 @@ impl MediaViewer {
             .expect("Cant find previous_media_button in ui file.");
 
         previous_media_button.connect_enter_notify_event(clone!(nav_hovered => move |_, _| {
-            *(nav_hovered.lock().unwrap()) = true;
+            nav_hovered.store(true, Ordering::SeqCst);
 
             Inhibit(false)
         }));
         previous_media_button.connect_leave_notify_event(clone!(nav_hovered => move |_, _| {
-            *(nav_hovered.lock().unwrap()) = false;
+            nav_hovered.store(false, Ordering::SeqCst);
 
             Inhibit(false)
         }));
@@ -783,12 +784,12 @@ impl MediaViewer {
             .expect("Cant find next_media_button in ui file.");
 
         next_media_button.connect_enter_notify_event(clone!(nav_hovered => move |_, _| {
-            *(nav_hovered.lock().unwrap()) = true;
+            nav_hovered.store(true, Ordering::SeqCst);
 
             Inhibit(false)
         }));
         next_media_button.connect_leave_notify_event(clone!(nav_hovered => move |_, _| {
-            *(nav_hovered.lock().unwrap()) = false;
+            nav_hovered.store(false, Ordering::SeqCst);
 
             Inhibit(false)
         }));
@@ -837,13 +838,13 @@ impl MediaViewer {
                         .get_popover()
                         .filter(|p| p.get_visible())
                         .is_some();
-                            if !*header_hovered.lock().unwrap() && !menu_popover_is_visible {
+                            if !header_hovered.load(Ordering::SeqCst) && !menu_popover_is_visible {
                                 let headerbar_revealer = ui
                                     .get_object::<gtk::Revealer>("headerbar_revealer")
                                     .expect("Can't find headerbar_revealer in ui file.");
                                 headerbar_revealer.set_reveal_child(false);
                             }
-                        if !*nav_hovered.lock().unwrap() {
+                        if !nav_hovered.load(Ordering::SeqCst) {
                             let previous_media_revealer = ui
                                 .get_object::<gtk::Revealer>("previous_media_revealer")
                                 .expect("Cant find previous_media_revealer in ui file.");
diff --git a/fractal-gtk/src/widgets/roomlist.rs b/fractal-gtk/src/widgets/roomlist.rs
index 88dc6ff7..3c88591f 100644
--- a/fractal-gtk/src/widgets/roomlist.rs
+++ b/fractal-gtk/src/widgets/roomlist.rs
@@ -11,6 +11,7 @@ use crate::globals;
 use crate::types::{Room, RoomTag};
 use crate::widgets::roomrow::RoomRow;
 use std::convert::TryFrom;
+use std::sync::atomic::{AtomicBool, Ordering};
 use std::sync::{Arc, Mutex, MutexGuard};
 
 use chrono::prelude::*;
@@ -48,7 +49,7 @@ pub struct RoomListGroup {
     pub list: gtk::ListBox,
     rev: gtk::Revealer,
     arrow: gtk::Image,
-    expanded: Arc<Mutex<bool>>,
+    expanded: Arc<AtomicBool>,
     title: gtk::Label,
     empty: gtk::Label,
     title_eb: gtk::EventBox,
@@ -86,11 +87,11 @@ impl RoomListGroup {
         title.set_valign(gtk::Align::Start);
         let arrow =
             gtk::Image::new_from_icon_name(Some("pan-down-symbolic"), gtk::IconSize::SmallToolbar);
-        let expanded = Arc::new(Mutex::new(true));
+        let expanded = Arc::new(AtomicBool::new(true));
         let title_eb = gtk::EventBox::new();
 
         title_eb.connect_button_press_event(clone!(list, arrow, rev, expanded => move |_, _| {
-            if *expanded.lock().unwrap() {
+            if expanded.load(Ordering::SeqCst) {
                 arrow.set_from_icon_name(Some("pan-end-symbolic"), gtk::IconSize::SmallToolbar);
                 rev.set_reveal_child(false);
                 list.get_style_context().add_class("collapsed");
@@ -99,8 +100,8 @@ impl RoomListGroup {
                 rev.set_reveal_child(true);
                 list.get_style_context().remove_class("collapsed");
             }
-            let exp = !(*expanded.lock().unwrap());
-            *expanded.lock().unwrap() = exp;
+            let exp = !expanded.load(Ordering::SeqCst);
+            expanded.store(exp, Ordering::SeqCst);
             glib::signal::Inhibit(true)
         }));
 
@@ -248,7 +249,7 @@ impl RoomListGroup {
 
         self.arrow
             .set_from_icon_name(Some("pan-down-symbolic"), gtk::IconSize::SmallToolbar);
-        *self.expanded.lock().unwrap() = true;
+        self.expanded.store(true, Ordering::SeqCst);
         self.rev.set_reveal_child(true);
         self.list.get_style_context().remove_class("collapsed");
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]