mirror of
https://github.com/amd/blis.git
synced 2026-05-21 00:48:56 +00:00
Thanks to Moore, Branden <Branden.Moore@amd.com> for identifying the race condition and suggesting the changes to fix the same Existing Design: - AOCL progress callback pointer is a global pointer which is shared across all threads Existing Design challenges: - The callback function cannot safely disable the progress mechanism, as another thread may have already checked to see if the function pointer is set, and then re-reads the pointer upon invocation of the callback. If one thread sets the callback to NULL in this time, then the resulting thread will attempt to call the null pointer as a function pointer, leading to a segfault. New Design : - Each thread maintains a local copy of progress pointer AMD-Internal: [SWLCSG-1971] Change-Id: I282989805a4a2a8a759a7373b645f3569bf42ed4