fn read_input( input: &mut Box<dyn SerialInput>, thread_in_avail_evt: &Event, buffer: Arc<Mutex<VecDeque<u8>>>, kill_evt: Event ) -> Result<()>