Move session to shared state

This commit is contained in:
Igor Katson 2024-08-21 16:15:15 +01:00
parent 451debedbb
commit ad5f62b9b9
No known key found for this signature in database
GPG key ID: B4EC22B66D61A3F5
2 changed files with 3 additions and 2 deletions

View file

@ -1138,6 +1138,7 @@ impl Session {
disk_write_queue: self.disk_write_tx.clone(),
},
connector: self.connector.clone(),
session: Arc::downgrade(self),
});
let initializing = Arc::new(TorrentStateInitializing::new(
@ -1152,7 +1153,6 @@ impl Session {
}),
state_change_notify: Notify::new(),
shared: minfo,
session: Arc::downgrade(self),
});
g.add_torrent(handle.clone(), id);

View file

@ -119,11 +119,11 @@ pub struct ManagedTorrentShared {
pub(crate) options: ManagedTorrentOptions,
pub(crate) connector: Arc<StreamConnector>,
pub(crate) storage_factory: BoxStorageFactory,
pub(crate) session: Weak<Session>,
}
pub struct ManagedTorrent {
pub shared: Arc<ManagedTorrentShared>,
pub(crate) session: Weak<Session>,
pub(crate) state_change_notify: Notify,
pub(crate) locked: RwLock<ManagedTorrentLocked>,
}
@ -213,6 +213,7 @@ impl ManagedTorrent {
start_paused: bool,
) -> anyhow::Result<()> {
let session = self
.shared
.session
.upgrade()
.context("session is dead, cannot start torrent")?;