pub(in virtio::console) fn spawn_input_thread(
input: Box<dyn SerialInput>,
in_avail_evt: Event,
input_buffer: Arc<Mutex<VecDeque<u8>>>
) -> WorkerThread<Box<dyn SerialInput>>
Expand description
Starts a thread that reads input and sends the input back via the provided buffer.
The caller should listen on in_avail_evt
for events. When in_avail_evt
signals that data
is available, the caller should lock input_buffer
and read data out of the inner
VecDeque
. The data should be removed from the beginning of the VecDeque
as it is processed.
§Arguments
input
- Data source that the reader thread will wait on to send data back to the bufferin_avail_evt
- Event triggered by the thread when new input is available on the buffer