Support stable rust

This removes use of Option.contains(), and provides a fallback pidfd
implementation for stable.
This commit is contained in:
2022-05-05 12:16:50 -07:00
parent 04650b3c53
commit 23fef4d9e3
7 changed files with 103 additions and 22 deletions

View File

@ -1,6 +1,3 @@
#![feature(option_result_contains)]
#![feature(is_some_with)]
use async_std::{fs::File, prelude::*, sync::{Arc, Mutex}, task};
use bscreensaver_util::init_logging;
use futures::{future::FutureExt, pin_mut, select};
@ -160,7 +157,7 @@ async fn dbus_task(state: Arc<Mutex<State>>) -> anyhow::Result<()> {
let args = name_owner_changed.args()?;
match args.name() {
BusName::WellKnown(name) if name == OUR_DBUS_NAME => {
if args.new_owner().is_none() || args.new_owner().is_some_and(|no| no != our_unique_name) {
if args.new_owner().is_none() || args.new_owner().as_ref().filter(|no| no != &our_unique_name).is_some() {
info!("Lost bus name {}; quitting", OUR_DBUS_NAME);
exit(0);
}
@ -168,7 +165,7 @@ async fn dbus_task(state: Arc<Mutex<State>>) -> anyhow::Result<()> {
BusName::Unique(name) => {
if args.new_owner().is_none() {
state.lock().await.inhibitors.retain(|inhibitor| {
if inhibitor.peer.contains(name) {
if inhibitor.peer.as_ref().filter(|n| n == &name).is_some() {
info!("Canceling inhibit from {}, as the client has disappeared", inhibitor.app_name);
false
} else {