Skip to content

Commit 77f15c6

Browse files
authored
Merge pull request #517 from TTWNO/actual_smol_rs_update
Actual smol rs update
2 parents c0140e9 + dee68b9 commit 77f15c6

File tree

10 files changed

+32
-24
lines changed

10 files changed

+32
-24
lines changed

book/src/blocking.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -185,13 +185,13 @@ fn main() -> Result<(), Box<dyn Error>> {
185185
name: "GreeterName".to_string(),
186186
done: event_listener::Event::new(),
187187
};
188-
let done_listener = greeter.done.listen();
188+
let mut done_listener = greeter.done.listen();
189189
let _handle = connection::Builder::session()?
190190
.name("org.zbus.MyGreeter")?
191191
.serve_at("/org/zbus/MyGreeter", greeter)?
192192
.build()?;
193193
194-
done_listener.wait();
194+
done_listener.as_mut().wait();
195195
196196
Ok(())
197197
}

book/src/server.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -262,14 +262,14 @@ async fn main() -> Result<()> {
262262
name: "GreeterName".to_string(),
263263
done: event_listener::Event::new(),
264264
};
265-
let done_listener = greeter.done.listen();
265+
let mut done_listener = greeter.done.listen();
266266
let _connection = Builder::session()?
267267
.name("org.zbus.MyGreeter")?
268268
.serve_at("/org/zbus/MyGreeter", greeter)?
269269
.build()
270270
.await?;
271271
272-
done_listener.wait();
272+
done_listener.as_mut().wait();
273273
274274
Ok(())
275275
}

zbus/Cargo.toml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -45,26 +45,26 @@ zbus_macros = { path = "../zbus_macros", version = "=4.0.0" }
4545
enumflags2 = { version = "0.7.7", features = ["serde"] }
4646
derivative = "2.2"
4747
once_cell = "1.4.0"
48-
async-io = { version = "1.12.0", optional = true }
48+
async-io = { version = "2.2.2", optional = true }
4949
futures-core = "0.3.25"
5050
futures-sink = "0.3.25"
5151
futures-util = { version = "0.3.25", default-features = false, features = [
5252
"sink",
5353
"std",
5454
] }
55-
async-lock = { version = "2.6.0", optional = true }
56-
async-broadcast = "0.5.0"
55+
async-lock = { version = "3.0.0", optional = true }
56+
async-broadcast = "0.6.0"
5757
async-executor = { version = "1.5.0", optional = true }
5858
blocking = { version = "1.0.2", optional = true }
5959
async-task = { version = "4.3.0", optional = true }
6060
hex = "0.4.3"
6161
ordered-stream = "0.2"
6262
rand = "0.8.5"
6363
sha1 = { version = "0.10.5", features = ["std"] }
64-
event-listener = "2.5.3"
64+
event-listener = "4.0.1"
6565
static_assertions = "1.1.0"
6666
async-trait = "0.1.58"
67-
async-fs = { version = "1.6.0", optional = true }
67+
async-fs = { version = "2.0.0", optional = true }
6868
# FIXME: We should only enable process feature for Mac OS. See comment on async-process below for why we can't.
6969
tokio = { version = "1.21.2", optional = true, features = [
7070
"rt",
@@ -95,7 +95,7 @@ winapi = { version = "0.3", features = [
9595
"winerror",
9696
"winsock2",
9797
] }
98-
uds_windows = "1.0.2"
98+
uds_windows = "1.1.0"
9999

100100
[target.'cfg(unix)'.dependencies]
101101
nix = { version = "0.27", default-features = false, features = [
@@ -107,7 +107,7 @@ nix = { version = "0.27", default-features = false, features = [
107107
[target.'cfg(target_os = "macos")'.dependencies]
108108
# FIXME: This should only be enabled if async-io feature is enabled but currently
109109
# Cargo doesn't provide a way to do that for only specific target OS: https://github.com/rust-lang/cargo/issues/1197.
110-
async-process = "1.7.0"
110+
async-process = "2.0.0"
111111

112112
[target.'cfg(any(target_os = "macos", windows))'.dependencies]
113113
async-recursion = "1.0.0"

zbus/src/address.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -333,6 +333,7 @@ impl Address {
333333
Address::Tcp(addr) => connect_tcp(addr).await.map(Stream::Tcp),
334334

335335
Address::NonceTcp { addr, nonce_file } => {
336+
#[allow(unused_mut)]
336337
let mut stream = connect_tcp(addr).await?;
337338

338339
#[cfg(unix)]
@@ -352,7 +353,7 @@ impl Address {
352353

353354
while !nonce.is_empty() {
354355
let len = stream
355-
.write_with_mut(|s| std::io::Write::write(s, nonce))
356+
.write_with(|mut s| std::io::Write::write(&mut s, nonce))
356357
.await?;
357358
nonce = &nonce[len..];
358359
}

zbus/src/blocking/connection/mod.rs

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
use enumflags2::BitFlags;
44
use event_listener::EventListener;
55
use static_assertions::assert_impl_all;
6-
use std::{io, ops::Deref};
6+
use std::{io, ops::Deref, pin::Pin};
77
use zbus_names::{BusName, ErrorName, InterfaceName, MemberName, OwnedUniqueName, WellKnownName};
88
use zvariant::ObjectPath;
99

@@ -241,7 +241,7 @@ impl Connection {
241241
/// Returns a listener, notified on various connection activity.
242242
///
243243
/// This function is meant for the caller to implement idle or timeout on inactivity.
244-
pub fn monitor_activity(&self) -> EventListener {
244+
pub fn monitor_activity(&self) -> Pin<Box<EventListener>> {
245245
self.inner.monitor_activity()
246246
}
247247

@@ -313,7 +313,9 @@ mod tests {
313313
});
314314

315315
let c = Builder::unix_stream(p1).p2p().build().unwrap();
316-
let listener = c.monitor_activity();
316+
317+
let mut listener = c.monitor_activity();
318+
317319
let mut s = MessageIterator::from(&c);
318320
tx.send(()).unwrap();
319321
let m = s.next().unwrap().unwrap();
@@ -326,11 +328,15 @@ mod tests {
326328
assert_eq!(val, "yay");
327329

328330
// there was some activity
329-
listener.wait();
331+
listener.as_mut().wait();
330332
// eventually, nothing happens and it will timeout
331333
loop {
332-
let listener = c.monitor_activity();
333-
if !listener.wait_timeout(std::time::Duration::from_millis(10)) {
334+
let mut listener = c.monitor_activity();
335+
if listener
336+
.as_mut()
337+
.wait_timeout(std::time::Duration::from_millis(10))
338+
.is_none()
339+
{
334340
break;
335341
}
336342
}

zbus/src/blocking/object_server.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,13 +113,13 @@ where
113113
/// let connection = Connection::session()?;
114114
///
115115
/// let quit_event = Event::new();
116-
/// let quit_listener = quit_event.listen();
116+
/// let mut quit_listener = quit_event.listen();
117117
/// let interface = Example::new(quit_event);
118118
/// connection
119119
/// .object_server()
120120
/// .at("/org/zbus/path", interface)?;
121121
///
122-
/// quit_listener.wait();
122+
/// quit_listener.as_mut().wait();
123123
/// # Ok::<_, Box<dyn Error + Send + Sync>>(())
124124
/// ```
125125
#[derive(Debug)]

zbus/src/connection/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1212,7 +1212,7 @@ impl Connection {
12121212
/// Returns a listener, notified on various connection activity.
12131213
///
12141214
/// This function is meant for the caller to implement idle or timeout on inactivity.
1215-
pub fn monitor_activity(&self) -> EventListener {
1215+
pub fn monitor_activity(&self) -> Pin<Box<EventListener>> {
12161216
self.inner.activity_event.listen()
12171217
}
12181218

zbus/src/connection/socket_reader.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ impl SocketReader {
7272
}
7373
}
7474

75-
if let Err(e) = sender.broadcast(msg.clone()).await {
75+
if let Err(e) = sender.broadcast_direct(msg.clone()).await {
7676
// An error would be due to either of these:
7777
//
7878
// 1. the channel is closed.

zbus/src/object_server/mod.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ use std::{
77
fmt::Write,
88
marker::PhantomData,
99
ops::{Deref, DerefMut},
10+
pin::Pin,
1011
sync::Arc,
1112
};
1213
use tracing::{debug, instrument, trace};
@@ -809,7 +810,7 @@ pub struct ResponseDispatchNotifier<R> {
809810

810811
impl<R> ResponseDispatchNotifier<R> {
811812
/// Create a new `NotifyResponse`.
812-
pub fn new(response: R) -> (Self, EventListener) {
813+
pub fn new(response: R) -> (Self, Pin<Box<EventListener>>) {
813814
let event = Event::new();
814815
let listener = event.listen();
815816
(

zbus/src/proxy/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ where
209209
pub struct PropertyStream<'a, T> {
210210
name: &'a str,
211211
proxy: Proxy<'a>,
212-
changed_listener: EventListener,
212+
changed_listener: Pin<Box<EventListener>>,
213213
phantom: std::marker::PhantomData<T>,
214214
}
215215

0 commit comments

Comments
 (0)