in src/main.rs [326:351]
fn update(
log: &slog::Logger,
code_path: &PathBuf,
update_folder_name: &str,
silent: bool,
) -> Result<(), Box<dyn error::Error>> {
process::wait_or_kill(log, code_path)?;
info!(log, "Inno Updater v{}", VERSION);
info!(log, "Starting update, silent = {}", silent);
let (tx, rx) = mpsc::channel();
thread::spawn(move || {
gui::run_progress_window(silent, tx);
});
let window = rx
.recv()
.map_err(|_| io::Error::new(io::ErrorKind::Other, "Could not receive GUI window handle"))?;
do_update(&log, code_path, update_folder_name)?;
window.exit();
Ok(())
}