Pārlūkot izejas kodu

bugfix: there's a type Arc<Weak<Foo>> when it should be Weak<Foo>

x 2 gadi atpakaļ
vecāks
revīzija
250c8ba2d0

+ 2 - 2
src/net/acceptor.rs

@@ -44,11 +44,11 @@ pub struct Acceptor {
 
 
 impl Acceptor {
 impl Acceptor {
     /// Create new Acceptor object.
     /// Create new Acceptor object.
-    pub fn new(session: Mutex<Option<SessionWeakPtr>>) -> AcceptorPtr {
+    pub fn new() -> AcceptorPtr {
         Arc::new(Self {
         Arc::new(Self {
             channel_subscriber: Subscriber::new(),
             channel_subscriber: Subscriber::new(),
             task: StoppableTask::new(),
             task: StoppableTask::new(),
-            session,
+            session: Mutex::new(None),
         })
         })
     }
     }
 
 

+ 2 - 2
src/net/session/inbound_session.rs

@@ -117,9 +117,9 @@ impl InboundSession {
     ) -> Result<()> {
     ) -> Result<()> {
         info!(target: "net::inbound_session", "[P2P] Starting Inbound session #{} on {}", index, accept_addr);
         info!(target: "net::inbound_session", "[P2P] Starting Inbound session #{} on {}", index, accept_addr);
         // Generate a new acceptor for this inbound session
         // Generate a new acceptor for this inbound session
-        let acceptor = Acceptor::new(Mutex::new(None));
+        let acceptor = Acceptor::new();
         let parent = Arc::downgrade(&self);
         let parent = Arc::downgrade(&self);
-        *acceptor.session.lock().await = Some(Arc::new(parent));
+        *acceptor.session.lock().await = Some(parent);
 
 
         // Start listener
         // Start listener
         let result = acceptor.clone().start(accept_addr, ex).await;
         let result = acceptor.clone().start(accept_addr, ex).await;

+ 1 - 1
src/net/session/manual_session.rs

@@ -99,7 +99,7 @@ impl ManualSession {
         let ex = self.p2p().executor();
         let ex = self.p2p().executor();
         let parent = Arc::downgrade(&self);
         let parent = Arc::downgrade(&self);
         let settings = self.p2p().settings();
         let settings = self.p2p().settings();
-        let connector = Connector::new(settings.clone(), Arc::new(parent));
+        let connector = Connector::new(settings.clone(), parent);
 
 
         let attempts = settings.manual_attempt_limit;
         let attempts = settings.manual_attempt_limit;
         let mut remaining = attempts;
         let mut remaining = attempts;

+ 1 - 1
src/net/session/mod.rs

@@ -42,7 +42,7 @@ pub const SESSION_MANUAL: SessionBitFlag = 0b0100;
 pub const SESSION_SEED: SessionBitFlag = 0b1000;
 pub const SESSION_SEED: SessionBitFlag = 0b1000;
 pub const SESSION_ALL: SessionBitFlag = 0b1111;
 pub const SESSION_ALL: SessionBitFlag = 0b1111;
 
 
-pub type SessionWeakPtr = Arc<Weak<dyn Session + Send + Sync + 'static>>;
+pub type SessionWeakPtr = Weak<dyn Session + Send + Sync + 'static>;
 
 
 /// Removes channel from the list of connected channels when a stop signal
 /// Removes channel from the list of connected channels when a stop signal
 /// is received.
 /// is received.

+ 1 - 1
src/net/session/outbound_session.rs

@@ -274,7 +274,7 @@ impl Slot {
     /// main connect loop (parent of this function) will iterate again.
     /// main connect loop (parent of this function) will iterate again.
     async fn try_connect(&self, addr: Url) -> Result<(Url, ChannelPtr)> {
     async fn try_connect(&self, addr: Url) -> Result<(Url, ChannelPtr)> {
         let parent = Arc::downgrade(&self.session());
         let parent = Arc::downgrade(&self.session());
-        let connector = Connector::new(self.p2p().settings(), Arc::new(parent));
+        let connector = Connector::new(self.p2p().settings(), parent);
 
 
         match connector.connect(&addr).await {
         match connector.connect(&addr).await {
             Ok((addr_final, channel)) => Ok((addr_final, channel)),
             Ok((addr_final, channel)) => Ok((addr_final, channel)),

+ 1 - 1
src/net/session/seedsync_session.rs

@@ -125,7 +125,7 @@ impl SeedSyncSession {
 
 
         let settings = self.p2p.upgrade().unwrap().settings();
         let settings = self.p2p.upgrade().unwrap().settings();
         let parent = Arc::downgrade(&self);
         let parent = Arc::downgrade(&self);
-        let connector = Connector::new(settings.clone(), Arc::new(parent));
+        let connector = Connector::new(settings.clone(), parent);
 
 
         match connector.connect(&seed).await {
         match connector.connect(&seed).await {
             Ok((url, ch)) => {
             Ok((url, ch)) => {