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,
}
#[tokio::main]
async fn main() -> anyhow::Result<()> {
fn main() -> anyhow::Result<()> {
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 =
if opts.torrent_path.starts_with("http://") || opts.torrent_path.starts_with("https://") {
rt.block_on(async move {
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?
} else {
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 manager_handle = builder.start_manager().await?;
manager_handle.wait_until_completed().await?;
Ok(())
let builder =
TorrentManagerBuilder::new(torrent, opts.output_folder).overwrite(opts.overwrite);
let manager_handle = builder.start_manager().await?;
manager_handle.wait_until_completed().await?;
Ok(())
})
}