Limit tokio threads

This commit is contained in:
Igor Katson 2021-06-26 00:54:39 +01:00
parent 12b3f12859
commit 7f47772dcb

View file

@ -56,23 +56,32 @@ struct Opts {
overwrite: bool, overwrite: bool,
} }
#[tokio::main] fn main() -> anyhow::Result<()> {
async fn main() -> anyhow::Result<()> {
pretty_env_logger::init(); pretty_env_logger::init();
let opts = Opts::parse(); let rt = tokio::runtime::Builder::new_multi_thread()
.enable_all()
// the default is 512, it can get out of hand.
.max_blocking_threads(8)
.build()?;
let torrent = rt.block_on(async move {
if opts.torrent_path.starts_with("http://") || opts.torrent_path.starts_with("https://") { let opts = Opts::parse();
let torrent = if opts.torrent_path.starts_with("http://")
|| opts.torrent_path.starts_with("https://")
{
torrent_from_url(&opts.torrent_path).await? torrent_from_url(&opts.torrent_path).await?
} else { } else {
torrent_from_file(&opts.torrent_path)? torrent_from_file(&opts.torrent_path)?
}; };
info!("Torrent metadata: {:#?}", &torrent); info!("Torrent metadata: {:#?}", &torrent);
let builder = TorrentManagerBuilder::new(torrent, opts.output_folder).overwrite(opts.overwrite); let builder =
let manager_handle = builder.start_manager().await?; TorrentManagerBuilder::new(torrent, opts.output_folder).overwrite(opts.overwrite);
manager_handle.wait_until_completed().await?; let manager_handle = builder.start_manager().await?;
Ok(()) manager_handle.wait_until_completed().await?;
Ok(())
})
} }