Use tokio::sync::RwLock instead of std

xmppftw created

Change summary

xmpp/ChangeLog       | 5 +++++
xmpp/src/agent.rs    | 3 ++-
xmpp/src/builder.rs  | 3 ++-
xmpp/src/muc/room.rs | 7 ++++++-
4 files changed, 15 insertions(+), 3 deletions(-)

Detailed changes

xmpp/ChangeLog 🔗

@@ -1,3 +1,8 @@
+Version NEXT
+XXXX-YY-ZZ [ RELEASER <admin@localhost> ]
+    * Fixes:
+      - Use tokio::sync::RwLock not std::sync::RwLock (!432)
+
 Version 0.6.0:
 2024-07-27 [ Maxime “pep” Buquet <pep@bouah.net> ]
     * Breaking:

xmpp/src/agent.rs 🔗

@@ -5,7 +5,8 @@
 // file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 use std::path::{Path, PathBuf};
-use std::sync::{Arc, RwLock};
+use std::sync::Arc;
+use tokio::sync::RwLock;
 use tokio_xmpp::connect::ServerConnector;
 pub use tokio_xmpp::parsers;
 use tokio_xmpp::parsers::{disco::DiscoInfoResult, message::MessageType};

xmpp/src/builder.rs 🔗

@@ -4,7 +4,8 @@
 // License, v. 2.0. If a copy of the MPL was not distributed with this
 // file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-use std::sync::{Arc, RwLock};
+use std::sync::Arc;
+use tokio::sync::RwLock;
 use tokio_xmpp::connect::ServerConnector;
 use tokio_xmpp::{
     jid::{BareJid, Jid},

xmpp/src/muc/room.rs 🔗

@@ -28,7 +28,12 @@ pub async fn join_room<C: ServerConnector>(
         muc = muc.with_password(password);
     }
 
-    let nick = nick.unwrap_or_else(|| agent.default_nick.read().unwrap().clone());
+    let nick = if let Some(nick) = nick {
+        nick
+    } else {
+        agent.default_nick.read().await.clone()
+    };
+
     let room_jid = room.with_resource_str(&nick).unwrap();
     let mut presence = Presence::new(PresenceType::None).with_to(room_jid);
     presence.add_payload(muc);