diff --git a/CHANGELOG.md b/CHANGELOG.md index 79b9ba26..2ef3da11 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,11 @@ ## [Unreleased] +## [v6.1.12] + +### Changed +- Fix an unbounded event loop caused by other processes causing a "modify" event on the screen backlight brightness. + ## [v6.1.11] ### Changed diff --git a/Cargo.lock b/Cargo.lock index d61b4f90..f24dd6e3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -158,7 +158,7 @@ checksum = "175571dd1d178ced59193a6fc02dde1b972eb0bc56c892cde9beeceac5bf0f6b" [[package]] name = "asusctl" -version = "6.1.11" +version = "6.1.12" dependencies = [ "dmi_id", "env_logger", @@ -177,7 +177,7 @@ dependencies = [ [[package]] name = "asusd" -version = "6.1.11" +version = "6.1.12" dependencies = [ "cargo-husky", "concat-idents", @@ -204,7 +204,7 @@ dependencies = [ [[package]] name = "asusd-user" -version = "6.1.11" +version = "6.1.12" dependencies = [ "config-traits", "dirs", @@ -918,7 +918,7 @@ dependencies = [ [[package]] name = "config-traits" -version = "6.1.11" +version = "6.1.12" dependencies = [ "log", "ron", @@ -1310,7 +1310,7 @@ dependencies = [ [[package]] name = "dmi_id" -version = "6.1.11" +version = "6.1.12" dependencies = [ "log", "udev 0.8.0", @@ -4566,7 +4566,7 @@ dependencies = [ [[package]] name = "rog-control-center" -version = "6.1.11" +version = "6.1.12" dependencies = [ "asusd", "concat-idents", @@ -4597,7 +4597,7 @@ dependencies = [ [[package]] name = "rog_anime" -version = "6.1.11" +version = "6.1.12" dependencies = [ "dmi_id", "gif 0.12.0", @@ -4611,7 +4611,7 @@ dependencies = [ [[package]] name = "rog_aura" -version = "6.1.11" +version = "6.1.12" dependencies = [ "dmi_id", "log", @@ -4622,7 +4622,7 @@ dependencies = [ [[package]] name = "rog_dbus" -version = "6.1.11" +version = "6.1.12" dependencies = [ "asusd", "rog_anime", @@ -4636,7 +4636,7 @@ dependencies = [ [[package]] name = "rog_platform" -version = "6.1.11" +version = "6.1.12" dependencies = [ "concat-idents", "inotify", @@ -4649,7 +4649,7 @@ dependencies = [ [[package]] name = "rog_profiles" -version = "6.1.11" +version = "6.1.12" dependencies = [ "log", "rog_platform", @@ -4660,7 +4660,7 @@ dependencies = [ [[package]] name = "rog_scsi" -version = "6.1.11" +version = "6.1.12" dependencies = [ "ron", "serde", @@ -4670,7 +4670,7 @@ dependencies = [ [[package]] name = "rog_simulators" -version = "6.1.11" +version = "6.1.12" dependencies = [ "log", "rog_anime", @@ -4680,7 +4680,7 @@ dependencies = [ [[package]] name = "rog_slash" -version = "6.1.11" +version = "6.1.12" dependencies = [ "dmi_id", "serde", diff --git a/Cargo.toml b/Cargo.toml index d0c0c3ad..6712002f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,5 @@ [workspace.package] -version = "6.1.11" +version = "6.1.12" rust-version = "1.82" license = "MPL-2.0" readme = "README.md" diff --git a/asusd/src/ctrl_backlight.rs b/asusd/src/ctrl_backlight.rs index a76d3c70..7d6211cf 100644 --- a/asusd/src/ctrl_backlight.rs +++ b/asusd/src/ctrl_backlight.rs @@ -1,4 +1,5 @@ use std::sync::Arc; +use std::time::Duration; use config_traits::StdConfig; use futures_util::lock::Mutex; @@ -165,10 +166,14 @@ impl CtrlBacklight { let backlights = self.clone(); tokio::spawn(async move { + let mut last_level = 0; let mut buffer = [0; 32]; use futures_lite::StreamExt; if let Ok(mut stream) = watch.into_event_stream(&mut buffer) { while (stream.next().await).is_some() { + // other processes cause "MODIFY" event and make this spin 100%, so sleep + tokio::time::sleep(Duration::from_secs(1)).await; + let sync = backlights.config.lock().await.screenpad_sync_primary; if let Some(sync) = sync { if !sync { @@ -188,10 +193,13 @@ impl CtrlBacklight { .get_brightness_percent(&BacklightType::Primary) .await .unwrap_or(60); - backlights - .set_brightness_with_sync(&BacklightType::Screenpad, level) - .await - .ok(); + if last_level != level { + last_level = level; + backlights + .set_brightness_with_sync(&BacklightType::Screenpad, level) + .await + .ok(); + } } // watch // .into_event_stream(&mut buffer)