Fix #pipe's FD taps
authorBarret Rhoden <brho@cs.berkeley.edu>
Thu, 1 Dec 2016 18:25:25 +0000 (13:25 -0500)
committerBarret Rhoden <brho@cs.berkeley.edu>
Wed, 7 Dec 2016 22:46:48 +0000 (14:46 -0800)
commit265ab3aa436517534dfe3ca95f4fa3c5f19258b0
tree80bed31572be33ebbf278854994db5b73f14d2c8
parent17060c66ff19603b17ab8485fc81dd0546be15d1
Fix #pipe's FD taps

Previously, we were just tapping one queue of the pipe for each side
(side being Qdata0 or Qdata1).  We actually need to tap both queues for
either side.  For example, Qdata0 cares about when q[0] is readable and
when q[1] is writable.

This bug was hidden by another bug that led to select() constantly
polling and possibly by missing wakeups.

Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
kern/drivers/dev/pipe.c