FVA36HBVXZCYW7FMQLST63Q6IDGLJ23OIHORF67BUIO2GXYNBW2QC EC3TVL4X6VZZVLOKUN63LC73ADPHBHMZO7QMDXGX2ZPURVI4B4XQC YBJRDOTCX3ZRDB5EVXJBR55FX3CADCSIGMYWNYVC2PD5W3GXR3DQC KM5PSZ4A2FJOPHJA6RC7LHZAUXLQDZDQC2DVSE5YUORLFIPZO74QC 4WO3ZJM2RNYZCBPS7FGYAEBELYD57OSS7LEUYCWGZBCAY272SNQQC 23SFYK4Q5NKBPJG53PQNPWQH6UOUU2YKJEL7RLXYBRLJOJYV7AWQC ACDXXAX26ZJJFKJDGRC2GOSJY5JHQWCSTP55SYI6D6LH5UIRYUBAC 6YZAVBWU6E5FYOI5JGEIPXGZLIKAW6LS2AOFIQWEE5DMOPPCD5PQC let (repo_tx_in, repo_rx_in) = mpsc::unbounded_channel::<repo::MsgIn>();let (repo_tx_out, repo_rx_out) = mpsc::unbounded_channel::<repo::MsgOut>();let repo_path_clone = repo_path.clone();let repo_task = Task::future(async move {repo::manage(repo_path_clone, repo_rx_in, repo_tx_out).await;Msg::RepoTaskExited});let repo_rx_out = UnboundedReceiverStream::new(repo_rx_out);let repo_msg_out_task = Task::run(repo_rx_out, Msg::FromRepo);
let (repo_task, repo_tx_in) = start_task_to_manage_repo(repo_path.clone());
panic!("Repo task exited")
error!("Task managing repo has crashed. This shouldn't happen, please report what happened!");info!("Starting a new task to manage repo");let (task, repo_tx_in) =start_task_to_manage_repo(state.repo_path.clone());state.repo_tx_in = repo_tx_in;task
}fn start_task_to_manage_repo(repo_path: PathBuf,) -> (Task<Msg>, mpsc::UnboundedSender<repo::MsgIn>) {let (repo_tx_in, repo_rx_in) = mpsc::unbounded_channel::<repo::MsgIn>();let (repo_tx_out, repo_rx_out) = mpsc::unbounded_channel::<repo::MsgOut>();let repo_task = Task::future(async move {repo::manage(repo_path, repo_rx_in, repo_tx_out).await;Msg::RepoTaskExited});let repo_rx_out = UnboundedReceiverStream::new(repo_rx_out);let repo_msg_out_task = Task::run(repo_rx_out, Msg::FromRepo);(Task::batch([repo_task, repo_msg_out_task]), repo_tx_in)