2D7P2VKJASU7QDQZHGCLBIT6G2V5WUFYLWTCEVVEI2EZHGM6XYRAC
Y6EVFMTA6FOH3OQH6QCSWMI3F6SYZT2FSHO6GF4M3ICENDCWFM4QC
GNMZNKB46GTPTWBR452FITHPBCMYPSDLV5VZQSY7BX6OJHWTWTZAC
SXEYMYF7P4RZMZ46WPL4IZUTSQ2ATBWYZX7QNVMS3SGOYXYOHAGQC
BNPSVXIC72C3WT33YKCH766OBLLNCS7POX6U6JXZSQQPJF2M22MQC
WLUID7NANDWTN5GOECNEKFTLZF3MUVS7K26YWLYLSGJ56G63NV4QC
UDHP4ZVBQZT2VBURB2MDCU2IZDNMCAFSIUKWRBDQ5BWMFKSN2LYQC
WKX5S4Z4DOB5S6A6X5V6ECZFCHQUMWRGX5XT4FBOG57P6HPWK7CAC
MU5GSJAW65PEG3BRYUKZ7O37BPHW3MOX3S5E2RFOXKGUOJEEDQ5AC
TKEVOH7HXON7SOBGXTUDHAHO2U2GPTQRNESP6ERKUQAS526OZIRAC
Q45QHPO4HDTEZF2W4UDZSYYQ46BPEIWSW4GJILZR5HTJNLKXJABQC
HXEIH4UQ6EX3MAY33JK4WQUE5GUSZ673OX57JKNFXC2N2QLTXKXAC
YN63NUZO4LVJ7XPMURDULTXBVJKW5MVCTZ24R7Z52QMHO3HPDUVQC
I52XSRUH5RVHQBFWVMAQPTUSPAJ4KNVID2RMI3UGCVKFLYUO6WZAC
FBXYP7QM7SG6P2JDJVQPPCRKJE3GVYXNQ5GVV4GRDUNG6Q4ZRDJQC
VBMXB443FGZL6DLT6KAP2ICFCCQNXCUMDEUL67HB4CNKFMBBNSSAC
WTZXEWY7IAXJAFNV7STCNQY2SNRDPHX3MKOEZ77NEJUN4MS2VYSQC
L4JXJHWXYNCL4QGJXNKKTOKKTAXKKXBJUUY7HFZGEUZ5A2V5H34QC
MDADYULS5AWVMTJDGYCGNQTN6T7XJDRUBDTFILDY5MLF6I2PE5NAC
LGEJSLTYI7Y2CYC3AN6ECMT3D3MTWCAKZPVQEG5MPM2OBW5FQ46AC
let progress = crate::progress::Cursors::new();
{
let mut pro = progress.borrow_mut().unwrap();
pro.push(crate::progress::Cursor::Bar {
let mut pro = PROGRESS.borrow_mut().unwrap();
let pro_a = pro.push(crate::progress::Cursor::Bar {
i: 0,
n: to_apply.len(),
pre: "Downloading changes".into(),
});
let pro_b = if do_apply {
Some(pro.push(crate::progress::Cursor::Bar {
pre: "Downloading changes".into(),
});
if do_apply {
pro.push(crate::progress::Cursor::Bar {
i: 0,
n: to_apply.len(),
pre: "Applying".into(),
});
}
}
pre: "Applying".into(),
}))
} else {
None
};
std::mem::drop(pro);
let inner_ = inner.clone();
let t = std::thread::spawn(move || loop {
let cursors = Cursors {
inner,
t: Mutex::new(None),
};
cursors.restart();
cursors
}
fn restart(&self) {
debug!("restart");
let mut t = self.t.lock().unwrap();
if t.is_some() {
return;
}
let inner_ = self.inner.clone();
*t = Some(std::thread::spawn(move || loop {