Мультитредное
Несколько дней коллега бился над проблемой, почему вдруг программа при завершении вдруг стала падать с ошибкой в malloc/free. Оказывается, кто-то в другом штате на другом берегу стал линковать одну из используемых динамических библиотек с -lpthread, а программа, которая этой библиотекой пользовалась, об этом деле ни сном ни духом.
Результат: адрес объекта std::locale, про который библиотека думала, что он thread-local и требует освобождения, динамический загрузчик честно-благородно брал из сегмента данных основной программы.
Перелинковали основную программу с -lpthread — всё починилось.