From f4a1b2d151e87317b81b3d45b8c176f2383a5605 Mon Sep 17 00:00:00 2001 From: Georgy Moshkin <gmoshkin@picodata.io> Date: Thu, 13 Oct 2022 12:19:38 +0300 Subject: [PATCH] refactor(discovery): change proc_discover so it compiles with later tarantool-module --- src/discovery.rs | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/src/discovery.rs b/src/discovery.rs index 702fa9fdcc..789779d70b 100644 --- a/src/discovery.rs +++ b/src/discovery.rs @@ -2,7 +2,6 @@ use ::tarantool::fiber::{mutex::MutexGuard, sleep, Mutex}; use ::tarantool::proc; use ::tarantool::uuid::Uuid; use serde::{Deserialize, Serialize}; -use std::borrow::Cow; use std::collections::BTreeSet; use std::error::Error as StdError; use std::time::{Duration, Instant}; @@ -194,11 +193,7 @@ pub fn wait_global() -> Role { } #[proc] -fn proc_discover<'a>( - #[inject(&mut discovery())] discovery: &'a mut Option<MutexGuard<'a, Discovery>>, - request: Request, - request_to: Address, -) -> Result<Cow<'a, Response>, Box<dyn StdError>> { +fn proc_discover<'a>(request: Request, request_to: Address) -> Result<Response, Box<dyn StdError>> { let ready_ids = traft::node::global().ok().and_then(|node| { let status = node.status(); status.leader_id.map(|leader_id| (leader_id, status.id)) @@ -207,13 +202,14 @@ fn proc_discover<'a>( let leader = traft::Storage::peer_by_raft_id(leader_id)?.ok_or_else(|| { format!("leader_id is present ({leader_id}) but it's address is unknown for node {id}") })?; - Ok(Cow::Owned(Response::Done(Role::new( + Ok(Response::Done(Role::new( leader.peer_address, leader_id == id, - )))) + ))) } else { + let mut discovery = discovery(); let discovery = discovery.as_mut().ok_or("discovery uninitialized")?; - Ok(Cow::Borrowed(discovery.handle_request(request, request_to))) + Ok(discovery.handle_request(request, request_to).clone()) } } -- GitLab