Skip to content

Exit and join all threads, before destroying any mutexes in the main thread

Otherwise, the mutex could be locked by another thread, and destroying a locked mutex triggers undefined behaviour.

Part of #31614 (moved).

Updated to add:

Instead of exiting and joining threads, we can initialize the mutex once, and never destroy it. If we use a sentinel value, like log_mutex_initialized, then we won't re-initialize the mutex when we re-initialize everything else.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information