mirror of
https://github.com/amd/blis.git
synced 2026-05-11 01:30:00 +00:00
Details: - Previously, bli_finalize_once()--which, like bli_init_once(), was implemented in terms of pthread_once()--was using the same pthread_once_t control object being used by bli_init(), thus guaranteeing that it would never be called as long as BLIS had already been initialized. This could manifest as a rather large memory leak to any application that attempted to finalize BLIS midway through its execution (since BLIS reserves several megabytes of storage for packing buffers per thread used). The fix entailed giving each function its own pthread_once_t object. Thanks to Devangi Parikh for helping track down this very quiet bug.