ca7a466f48
TTY has no way of keeping track of multiple readers for a tty minor device. Instead, it stores a read request for the last reader only. Consequently, the first ("overwritten") reader gets stuck on a read request that's never going to be finished. Also, the overwriting causes a grant mismatch in VFS when TTY returns a reply for the second reader. This patch is a work around for the actual problem (i.e., keeping track of multiple readers). It checks whether there is a read operation in progress and returns an error if it is --preventing that reader from getting overwritten and stuck. It fixes a bug triggered by executing 'top | more' and pressing the space bar for a while (easily reproducable in a VM, not on hardware). |
||
---|---|---|
benchmarks | ||
bin | ||
commands | ||
common | ||
dist/bzip2 | ||
docs | ||
drivers | ||
etc | ||
external | ||
include | ||
kernel | ||
lib | ||
libexec | ||
man | ||
sbin | ||
servers | ||
share | ||
sys | ||
test | ||
tools | ||
usr.bin | ||
usr.sbin | ||
.gitignore | ||
LICENSE | ||
Makefile |