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,14 +56,21 @@ 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 rt = tokio::runtime::Builder::new_multi_thread()
.enable_all()
// the default is 512, it can get out of hand.
.max_blocking_threads(8)
.build()?;
rt.block_on(async move {
let opts = Opts::parse(); let opts = Opts::parse();
let torrent = let torrent = if opts.torrent_path.starts_with("http://")
if opts.torrent_path.starts_with("http://") || opts.torrent_path.starts_with("https://") { || 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)?
@ -71,8 +78,10 @@ async fn main() -> anyhow::Result<()> {
info!("Torrent metadata: {:#?}", &torrent); info!("Torrent metadata: {:#?}", &torrent);
let builder = TorrentManagerBuilder::new(torrent, opts.output_folder).overwrite(opts.overwrite); let builder =
TorrentManagerBuilder::new(torrent, opts.output_folder).overwrite(opts.overwrite);
let manager_handle = builder.start_manager().await?; let manager_handle = builder.start_manager().await?;
manager_handle.wait_until_completed().await?; manager_handle.wait_until_completed().await?;
Ok(()) Ok(())
})
} }