Radish alpha
h
Radicle Heartwood Protocol & Stack
Radicle
Git (anonymous pull)
Log in to clone via SSH
node/upload_pack: Remove unnecessary Mutex
Lorenz Leutgeb committed 1 month ago
commit 7ad227147aecf48e0a4594e156832c2f149528fe
parent 77907636cc128c0b70f54108db4490f5349d5060
1 file changed +2 -4
modified crates/radicle-node/src/worker/upload_pack.rs
@@ -89,7 +89,7 @@ where

    let mut stdin = child.stdin.take().unwrap();
    let mut stdout = io::BufReader::new(child.stdout.take().unwrap());
-
    let reporter = std::sync::Mutex::new(Reporter::new(header.repo, remote, emitter.clone(), send));
+
    let mut reporter = Reporter::new(header.repo, remote, emitter.clone(), send);

    thread::scope(|s| {
        thread::spawn_scoped(nid, "upload-pack", s, || {
@@ -98,13 +98,11 @@ where
                match stdout.read(&mut buffer) {
                    Ok(0) => break,
                    Ok(n) => {
-
                        let mut lock = reporter.lock().expect("FATAL: upload_pack poisoned lock");
-
                        if let Err(e) = lock.write_all(&buffer[..n]) {
+
                        if let Err(e) = reporter.write_all(&buffer[..n]) {
                            log::debug!(target: "worker", "Failed to write buffer to upload-pack reporter: {e}");
                            emitter.emit(events::UploadPack::error(header.repo, remote, e).into());
                            break;
                        }
-
                        drop(lock);
                    }
                    Err(e) => {
                        log::debug!(target: "worker", "Exiting upload-pack writer thread for {}: {e}", header.repo);