From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <pbs-devel-bounces@lists.proxmox.com> Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id 59DEE1FF168 for <inbox@lore.proxmox.com>; Tue, 4 Mar 2025 15:41:32 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id BAEA41C32; Tue, 4 Mar 2025 15:41:25 +0100 (CET) From: Maximiliano Sandoval <m.sandoval@proxmox.com> To: pbs-devel@lists.proxmox.com Date: Tue, 4 Mar 2025 15:40:46 +0100 Message-Id: <20250304144051.585163-4-m.sandoval@proxmox.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250304144051.585163-1-m.sandoval@proxmox.com> References: <20250304144051.585163-1-m.sandoval@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.101 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: [pbs-devel] [PATCH proxmox 4/9] broadcast_future: accommodate to edition 2024 changes to RPIT X-BeenThere: pbs-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Backup Server development discussion <pbs-devel.lists.proxmox.com> List-Unsubscribe: <https://lists.proxmox.com/cgi-bin/mailman/options/pbs-devel>, <mailto:pbs-devel-request@lists.proxmox.com?subject=unsubscribe> List-Archive: <http://lists.proxmox.com/pipermail/pbs-devel/> List-Post: <mailto:pbs-devel@lists.proxmox.com> List-Help: <mailto:pbs-devel-request@lists.proxmox.com?subject=help> List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel>, <mailto:pbs-devel-request@lists.proxmox.com?subject=subscribe> Reply-To: Proxmox Backup Server development discussion <pbs-devel@lists.proxmox.com> Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: pbs-devel-bounces@lists.proxmox.com Sender: "pbs-devel" <pbs-devel-bounces@lists.proxmox.com> Prevents the following error: ``` error[E0597]: `inner` does not live long enough --> proxmox-async/src/broadcast_future.rs:109:24 | 107 | inner: Arc<Mutex<BroadCastFutureBinding<T>>>, | ----- binding `inner` declared here 108 | ) -> impl Future<Output = Result<T, Error>> { 109 | let mut data = inner.lock().unwrap(); | ^^^^^ borrowed value does not live long enough ... 121 | data.broadcast.listen() | ----------------------- argument requires that `inner` is borrowed for `'static` 122 | } | - `inner` dropped here while still borrowed error[E0597]: `data` does not live long enough --> proxmox-async/src/broadcast_future.rs:121:9 | 109 | let mut data = inner.lock().unwrap(); | -------- binding `data` declared here ... 121 | data.broadcast.listen() | ^^^^------------------- | | | borrowed value does not live long enough | argument requires that `data` is borrowed for `'static` 122 | } | - `data` dropped here while still borrowed ``` The use<...> pattern was introduced in rust 1.82. Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com> --- Cargo.toml | 2 +- proxmox-async/src/broadcast_future.rs | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 4d3f633e..3d758e92 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -62,7 +62,7 @@ license = "AGPL-3" repository = "https://git.proxmox.com/?p=proxmox.git" homepage = "https://proxmox.com" exclude = [ "debian" ] -rust-version = "1.80" +rust-version = "1.82" [workspace.dependencies] # any features enabled here are enabled on all members using 'workspace = true'! diff --git a/proxmox-async/src/broadcast_future.rs b/proxmox-async/src/broadcast_future.rs index 838204d3..62982e13 100644 --- a/proxmox-async/src/broadcast_future.rs +++ b/proxmox-async/src/broadcast_future.rs @@ -43,7 +43,7 @@ impl<T: Clone> BroadcastData<T> { } } - pub fn listen(&mut self) -> impl Future<Output = Result<T, Error>> { + pub fn listen(&mut self) -> impl Future<Output = Result<T, Error>> + use<T> { use futures::future::{ok, Either}; match &self.result { @@ -105,7 +105,7 @@ impl<T: Clone + Send + 'static> BroadcastFuture<T> { fn spawn( inner: Arc<Mutex<BroadCastFutureBinding<T>>>, - ) -> impl Future<Output = Result<T, Error>> { + ) -> impl Future<Output = Result<T, Error>> + use<T> { let mut data = inner.lock().unwrap(); if let Some(source) = data.future.take() { @@ -122,7 +122,7 @@ impl<T: Clone + Send + 'static> BroadcastFuture<T> { } /// Register a listener - pub fn listen(&self) -> impl Future<Output = Result<T, Error>> { + pub fn listen(&self) -> impl Future<Output = Result<T, Error>> + use<T> { let inner2 = self.inner.clone(); async move { Self::spawn(inner2).await } } -- 2.39.5 _______________________________________________ pbs-devel mailing list pbs-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel