f707937192
Previously, processing of some replies coming from character drivers could block on locks, and therefore, such processing was done from threads that were associated to the character driver process. The hidden consequence of this was that if all threads were in use, VFS could drop replies coming from the driver. This patch returns VFS to a situation where the replies from character drivers are processed instantly from the main thread, by removing the situations that may cause VFS to block while handling those replies. - change the locking model for select, so that it will never block on any processing that happens after the select call has been set up, in particular processing of character driver select replies; - clearly mark all select routines that may never block; - protect against race conditions in do_select as result of the locking that still does happen there (as is required for pipes); - also handle select timers from the main thread; - move processing of character driver replies into device.c. Change-Id: I4dc8e69f265cbd178de0fbf321d35f58f067cc57 |
||
---|---|---|
.. | ||
devman | ||
ds | ||
ext2 | ||
hgfs | ||
inet | ||
init | ||
ipc | ||
is | ||
iso9660fs | ||
lwip | ||
mfs | ||
pfs | ||
pm | ||
procfs | ||
rs | ||
sched | ||
vbfs | ||
vfs | ||
vm | ||
Makefile | ||
Makefile.inc |