mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2025-10-26 18:05:04 +03:00
If multiple threads trip an assertion at the same moment (quite common), they can be printing at the same time, and their output gets messy. This adds a simple lock around the whole thing, to prevent a second task printing assert output before the first has finished. Additionally, if libspl_assert_ok is not set, abort() is called without dropping the lock, so that any other asserting tasks will be killed before starting any output, rather than only getting part-way through. This is a tradeoff; it's assumed that multiple threads asserting at the same moment are likely the same fault in different instances of a thread, and so there won't be any more useful information from the other tasks anyway. Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Rob Norris <robn@despairlabs.com> Sponsored-by: https://despairlabs.com/sponsor/ Closes #16140 |
||
|---|---|---|
| .. | ||
| libavl | ||
| libefi | ||
| libicp | ||
| libnvpair | ||
| libshare | ||
| libspl | ||
| libtpool | ||
| libunicode | ||
| libuutil | ||
| libzdb | ||
| libzfs | ||
| libzfs_core | ||
| libzfsbootenv | ||
| libzpool | ||
| libzstd | ||
| libzutil | ||
| Makefile.am | ||