John Baldwin
efa86db61d
Adaptively spin before blocking on the turnstile if an rwlock is write
...
locked. In general the adaptive spinning is similar to the same code
for mutexes with some extra trickiness in rw_wunlock_hard(). Specifically,
even though both wait bits might be set and we might have a turnstile with
at least one waiting thread, there might not be any threads blocked on the
queue we are not waking up (they might all be spinning), and we should
only preserve the waiting flag for the queue we aren't waking up if there
are in fact threads blocked on that queue. Secondly, there might not be
any threads blocked on the queue we have chosen to waken threads from
(there might only be threads blocked on the other queue and the threads
for this queue are all spinning) in which case we disown the turnstile
instead of doing a braodcast and unpend.
2006-04-18 18:27:54 +00:00
..
2006-03-16 08:51:59 +00:00
2006-01-21 20:11:49 +00:00
2005-12-24 04:57:50 +00:00
2005-10-31 15:41:29 +00:00
2006-02-07 21:22:02 +00:00
2006-03-23 08:48:37 +00:00
2006-03-28 21:26:59 +00:00
2005-09-17 22:01:14 +00:00
2006-03-28 21:30:22 +00:00
2006-04-17 20:14:51 +00:00
2006-02-23 00:13:58 +00:00
2006-01-12 19:15:14 +00:00
2006-03-03 02:06:04 +00:00
2006-04-01 11:09:54 +00:00
2006-03-15 19:23:08 +00:00
2006-04-14 14:27:28 +00:00
2006-04-03 21:16:10 +00:00
2006-04-10 14:07:28 +00:00
2006-03-15 23:24:14 +00:00
2006-04-17 18:20:38 +00:00
2005-09-28 00:30:56 +00:00
2006-02-22 18:57:50 +00:00
2006-02-22 17:21:45 +00:00
2006-01-27 23:06:08 +00:00
2006-03-28 21:30:22 +00:00
2006-03-26 12:20:54 +00:00
2005-12-23 21:32:40 +00:00
2006-03-19 20:43:07 +00:00
2006-03-03 22:36:52 +00:00
2006-03-08 14:05:38 +00:00
2006-04-17 19:44:44 +00:00
2006-04-14 19:51:50 +00:00
2005-12-04 02:12:43 +00:00
2006-04-17 18:20:38 +00:00
2006-02-11 09:33:07 +00:00
2006-02-06 00:32:33 +00:00
2006-03-11 10:48:19 +00:00
2006-04-18 18:27:54 +00:00
2006-04-10 10:03:41 +00:00
2006-03-28 21:30:22 +00:00
2005-12-28 17:13:31 +00:00
2006-01-17 16:55:17 +00:00
2006-04-17 18:20:38 +00:00
2006-02-16 15:40:36 +00:00
2006-03-15 20:22:32 +00:00
2006-04-17 18:20:38 +00:00
2006-03-21 10:05:15 +00:00
2006-03-01 06:29:34 +00:00
2006-02-23 19:13:12 +00:00
2006-04-17 18:20:38 +00:00
2005-10-07 13:37:10 +00:00
2006-04-10 04:55:59 +00:00
2005-12-18 04:52:37 +00:00
2005-12-18 04:52:37 +00:00
2006-03-30 18:45:50 +00:00
2006-04-10 04:55:59 +00:00
2006-04-17 18:20:38 +00:00
2005-12-27 12:02:03 +00:00
2006-03-30 18:33:22 +00:00
2005-09-17 22:01:14 +00:00
2006-01-22 01:06:25 +00:00
2006-01-13 23:27:12 +00:00
2006-01-29 02:52:42 +00:00
2006-04-04 00:40:20 +00:00
2005-12-29 18:00:42 +00:00
2006-01-27 23:13:26 +00:00
2005-10-14 19:15:10 +00:00
2005-11-03 21:06:29 +00:00
2005-11-09 16:22:56 +00:00
2006-03-09 22:37:34 +00:00
2005-12-16 22:08:32 +00:00
2005-11-17 08:56:21 +00:00
2005-12-23 11:49:53 +00:00
2006-04-17 20:16:32 +00:00
2005-10-24 21:04:19 +00:00
2005-08-29 11:34:08 +00:00
2006-04-17 18:20:38 +00:00
2006-02-10 14:59:16 +00:00
2006-04-18 18:16:54 +00:00
2006-04-07 22:15:54 +00:00
2006-01-06 16:34:22 +00:00
2006-01-30 08:25:04 +00:00
2006-02-22 18:57:50 +00:00
2006-03-23 08:48:37 +00:00
2006-03-28 14:32:38 +00:00
2006-03-30 07:42:32 +00:00
2006-01-10 09:19:10 +00:00
2006-01-31 22:19:37 +00:00
2006-02-02 20:35:45 +00:00
2006-01-10 09:19:10 +00:00
2005-10-23 07:41:56 +00:00
2006-02-18 17:16:18 +00:00
2006-03-15 21:11:11 +00:00
2006-04-17 18:20:38 +00:00
2006-04-09 16:29:47 +00:00
2006-01-22 00:30:46 +00:00
2006-04-01 15:42:02 +00:00
2006-04-01 15:42:02 +00:00
2006-04-01 15:42:02 +00:00
2006-04-01 11:14:56 +00:00
2006-04-01 15:42:02 +00:00
2005-09-17 22:01:14 +00:00
2006-03-24 00:50:06 +00:00
2006-04-04 06:44:21 +00:00
2006-04-16 18:38:30 +00:00
2006-03-21 01:04:24 +00:00
2006-03-31 03:52:24 +00:00
2005-10-31 15:41:29 +00:00
2006-03-31 03:54:20 +00:00
2006-04-18 08:05:08 +00:00
2006-03-31 02:59:23 +00:00
2006-03-31 23:38:15 +00:00
2006-04-04 06:46:10 +00:00
2006-03-31 03:54:20 +00:00
2006-03-31 03:54:20 +00:00
2005-12-14 00:49:52 +00:00