zephyr/zephyr_getchar: Explicitly yield to other threads on char availability.

Without this, if there's a large chunk of data coming from hardware (e.g.
clipboard paste, or fed programmatically from the other side of the console),
there's a behavior of initial mass fill-in of the buffer without any
consumption, which starts much later and doesn't catch up with further
filling, leading to buffer overflow.
crypto-aes
Paul Sokolovsky 6 years ago
parent 468c6f9da1
commit 58168c8e6b

@ -44,6 +44,7 @@ static int console_irq_input_hook(uint8_t ch)
}
//printk("%x\n", ch);
k_sem_give(&uart_sem);
k_yield();
return 1;
}

Loading…
Cancel
Save