tjr 3fb83070b6 When there are no free sem_undo structs available in semu_alloc(), only
free one sem_undo with un_cnt == 0 instead of all of them. This is a
temporary workaround until the SLIST_FOREACH_PREVPTR loop gets fixed so
that it doesn't cause cycles in semu_list when removing multiple adjacent
items. It might be easier to just use (doubly-linked) LISTs here instead
of complicated SLIST code to achieve O(1) removals.

This bug manifested itself as a complete lockup under heavy semaphore use
by multiple processes with the SEM_UNDO flag set.

PR:		58984
2003-11-10 07:22:41 +00:00
..
2003-06-11 00:56:59 +00:00
2003-06-11 00:56:59 +00:00
2003-06-11 00:56:59 +00:00
2003-06-11 00:56:59 +00:00
2003-06-11 00:56:59 +00:00
2003-11-07 20:30:30 +00:00
2003-06-11 00:56:59 +00:00
2003-06-11 00:56:59 +00:00
2003-06-11 00:56:59 +00:00
2003-06-11 00:56:59 +00:00
2003-06-11 00:56:59 +00:00
2003-06-11 00:56:59 +00:00
2003-06-11 00:56:59 +00:00
2003-06-11 00:56:59 +00:00
2003-06-11 00:56:59 +00:00
2003-06-11 06:34:30 +00:00
2003-06-11 06:34:30 +00:00
2003-06-11 00:56:59 +00:00
2003-06-11 00:56:59 +00:00
2003-06-11 00:56:59 +00:00
2003-06-11 00:56:59 +00:00
2003-08-11 05:51:51 +00:00
2003-06-11 00:56:59 +00:00
2003-06-11 00:56:59 +00:00
2003-06-11 00:56:59 +00:00
2003-06-11 00:56:59 +00:00
2003-06-11 00:56:59 +00:00
2003-06-11 00:56:59 +00:00
2003-06-11 00:56:59 +00:00
2003-11-07 20:30:30 +00:00
2003-06-11 00:56:59 +00:00
2003-06-11 00:56:59 +00:00
2003-06-11 00:56:59 +00:00
2003-06-11 00:56:59 +00:00
2003-06-11 00:56:59 +00:00
2003-06-11 00:56:59 +00:00
2003-06-11 00:56:59 +00:00
2003-06-11 00:56:59 +00:00
2003-06-11 00:56:59 +00:00