Do not block when downloading more than 100 changes over SSH
[?]
Dec 4, 2020, 10:15 AM
WLUID7NANDWTN5GOECNEKFTLZF3MUVS7K26YWLYLSGJ56G63NV4QCDependencies
- [2]
QE64ATLZFixing asynchronicity problems in SSH - [3]
Q45QHPO4Feedback on network stuff - [4]
367UBQ6KForwarding SSH stderr, and progress bar for push - [5]
K6GWUOD5Styling progress bars - [6]
I52XSRUHMassive cleanup, and simplification - [7]
SXEYMYF7Fixing the bad changes in history (unfortunately, by rebooting). - [8]
UDHP4ZVBFixing SSH asynchronicity issues
Change contents
- replacement in pijul/src/remote/ssh.rs at line 411
*sender = None;std::mem::drop(sender.take()); - edit in pijul/src/remote/ssh.rs at line 709
self.download_changes_(c, Some(sender), changes_dir, full).await}async fn download_changes_(&mut self,c: &[libpijul::pristine::Hash],mut sender: Option<&mut tokio::sync::mpsc::Sender<libpijul::pristine::Hash>>,changes_dir: &mut PathBuf,full: bool,) -> Result<(), anyhow::Error> { - replacement in pijul/src/remote/ssh.rs at line 755[3.165]→[4.9854:9905](∅→∅),[4.9854]→[4.9854:9905](∅→∅),[4.9905]→[3.166:202](∅→∅),[3.202]→[4.378:401](∅→∅),[4.9905]→[4.378:401](∅→∅)
if sender.send(_hash).await.is_err() {progress.abandon();break;if let Some(ref mut sender) = sender {if sender.send(_hash).await.is_err() {progress.abandon();break;} - replacement in pijul/src/remote/ssh.rs at line 825
let (mut send, recv) = tokio::sync::mpsc::channel(100);self.download_changes(&hashes, &mut send, &mut repo.changes_dir, true)self.download_changes_(&hashes, None, &mut repo.changes_dir, true) - edit in pijul/src/remote/ssh.rs at line 828
std::mem::drop(recv);