From 6eade4742b1c870f9bc6524d767dccd36f1409f2 Mon Sep 17 00:00:00 2001
From: Emilio Corigliano <emilio.corigliano@skywarder.eu>
Date: Wed, 24 Apr 2024 11:52:40 +0200
Subject: [PATCH] Revert "Fixed some timing and release issues"

This reverts commit ca65b83d8be6bf253e1404a780314edef56a48bf.
---
 src/serial.rs | 15 +++++----------
 1 file changed, 5 insertions(+), 10 deletions(-)

diff --git a/src/serial.rs b/src/serial.rs
index f816341..950f1dc 100644
--- a/src/serial.rs
+++ b/src/serial.rs
@@ -3,7 +3,7 @@ use std::{
     ops::Deref,
     sync::Arc,
     thread::{self, JoinHandle},
-    time::Duration,
+    time::{Duration, Instant},
 };
 
 use crossbeam_channel::{unbounded, Receiver, RecvTimeoutError, Sender};
@@ -67,13 +67,9 @@ impl SerialManager {
         let mut buf = vec![0; n];
         // implement a read exact to allow better error messages
         let mut filled = 0;
+        let timeout = Instant::now() + port.read_timeout;
         while filled < n {
-            match port
-                .reader_ch
-                .as_ref()
-                .unwrap()
-                .recv_timeout(port.read_timeout)
-            {
+            match port.reader_ch.as_ref().unwrap().recv_deadline(timeout) {
                 Ok(b) => {
                     buf[filled] = b;
                     filled += 1;
@@ -136,8 +132,7 @@ impl SerialQueue {
         let ser = Arc::clone(&serial);
         handles.push(thread::spawn(move || {
             while let Ok(data) = wrx.recv() {
-                data.chunks(256)
-                    .for_each(|chunk| ser.lock().as_mut().unwrap().write_all(chunk).unwrap());
+                ser.lock().as_mut().unwrap().write_all(&data).unwrap();
             }
         }));
 
@@ -145,7 +140,7 @@ impl SerialQueue {
         let (rtx, rrx) = unbounded::<u8>();
         let ser = Arc::clone(&serial);
         handles.push(thread::spawn(move || {
-            let mut buf = [0; 256];
+            let mut buf = [0; 1024];
             loop {
                 match ser.lock().as_mut().map(|p| p.read(&mut buf)) {
                     Some(Ok(n)) => {
-- 
GitLab