Why terminal cannot send data after
^S was pressed?
I have always thought that
^S is used by terminal to tell tty driver that tty driver must not transmit data from application TO terminal (when it is busy processing the display, for example). But it turns out that
^S tells tty driver that output FROM terminal must not be transmitted to application. This is a surprise. Why is that needed?
This was discovered with the following test:
^M (aka enter), then wait a bit, then
^Q. The result is that current date is shown, not date from a bit ago.