ca6829ab99
some general word-smithing. - Don't claim that adaptive mutexes have a timeout (they don't). - Don't treat pool mutexes as a separate primitive in a few places. - Describe sleepable read-mostly locks as a separate lock type and add them to the various tables. - Don't claim that sx locks are less efficient. That hasn't been true in a few years now. - Describe lockmanager locks next to sx locks since they are very similar in terms of rules, etc., and so that all the lock primitives are grouped together before the non-lock primitives. - Similarly, move the section on Giant after the description of all the non-lock primitives to preserve grouping. - Condition variables work on several types of locks, not just mutexes. - Add a bit of language to compare/contrast condition variables with sleep/wakeup. - Add a note about why pause(9) is unique. - Add some language to define bounded vs unbounded sleeps and explain why they are treated separately (bounded sleeps only need CPU time to make forward progress). - Don't state that using mtx_sleep() is a bad idea. It is in fact rather necessary. - Rework the interaction table a bit. First, it did not include really include sleepable rmlocks and it left out lockmgr entirely. To get things to fit, combine similar lock types into the same column / row, and explicitly state what "sleep" means. The notes about recursion and lock order were also a bit banal (lock order is always important, not just in the few places annotated here), so remove them. In particular, the lock order note would need to be on just about every cell. If we want to document recursion I think a better approach would be a separate table summarizing the recursion rules for each lock as having too many notes clutters the table. - Tweak the tables to use less indentation so everything still fits with the added columns. - Correct a few cells in the context mode table. - Use mdoc markup instead of explicit markup in a few places. Requested by: julian MFC after: 2 weeks |
||
---|---|---|
.. | ||
man1 | ||
man3 | ||
man4 | ||
man5 | ||
man6 | ||
man7 | ||
man8 | ||
man9 | ||
Makefile |