36f0da1556
Background async library loading workers hold raw LIBRARY_TABLE_ROW pointers into the LIBRARY_TABLE::m_rows vector. When ProjectChanged() calls LoadProjectTables(), it destroys the old LIBRARY_TABLE objects via unique_ptr replacement. The workers were not aborted until after the tables were destroyed, creating a window where workers could access freed memory. Fixes https://gitlab.com/kicad/code/kicad/-/issues/23480