davidxu ecb168af50 1. use per-chain mutex instead of global mutex to reduce
lock collision.
2. Fix two race conditions. One is between _umtx_unlock and signal,
   also a thread was marked TDF_UMTXWAKEUP by _umtx_unlock, it is
   possible a signal delivered to the thread will cause msleep
   returns EINTR, and the thread breaks out of loop, this causes
   umtx ownership is not transfered to the thread. Another is in
   _umtx_unlock itself, when the function sets the umtx to
   UMTX_UNOWNED state, a new thread can come in and lock the umtx,
   also the function tries to set contested bit flag, but it will
   fail. Although the function will wake a blocked thread, if that
   thread breaks out of loop by signal, no contested bit will be set.
2004-11-30 12:02:53 +00:00
..
2004-11-25 12:08:16 +00:00
2004-11-08 18:22:22 +00:00
2004-11-04 07:59:57 +00:00
2004-08-19 19:51:51 +00:00
2004-11-30 03:23:35 +00:00
2004-07-10 21:43:23 +00:00
2004-08-19 20:16:09 +00:00
2004-10-25 12:27:03 +00:00
2004-11-17 09:09:55 +00:00
2004-11-17 09:09:55 +00:00
2004-11-25 12:08:16 +00:00
2004-06-17 17:16:53 +00:00
2004-11-11 19:19:54 +00:00
2004-05-30 20:34:58 +00:00
2004-11-04 07:59:57 +00:00
2004-11-16 08:22:06 +00:00
2004-11-16 08:22:06 +00:00