Fixes tchain corruption
authorBarret Rhoden <brho@cs.berkeley.edu>
Fri, 22 Nov 2013 01:55:34 +0000 (17:55 -0800)
committerBarret Rhoden <brho@cs.berkeley.edu>
Thu, 16 Jan 2014 21:07:51 +0000 (13:07 -0800)
commitf46e3e7984fb7d9e5b7ab2352b12984e333a6a37
tree8721a855607d1811ac05d05e3c01d0868d3899ea
parent1f05431b0678a36b3e8d0e1ccaef41e62da885de
Fixes tchain corruption

If you have multiple unsets of the same waiter, you would corrupt the
list.  I actually had this happen, though I'm not sure how.  The ksched
alarm was getting accidentally ripped off this list, causing all
processes to hang.  My hunch is that ping was setting and cancelling
alarms frequently, and perhaps userspace submitted concurrent requests
to unset its main alarm.
kern/src/alarm.c