Как вы можете практически протестировать синхронизированную структуру данных (в C)?
Запуск нескольких потоков и их конкуренция за доступ к структуре на некоторое время, чтобы увидеть, что что-то пошло не так, не звучит очень безопасно.
EDIT в ответ на комментарии: я имею в виду, что существует несколько потоков, выполняющих функции, которые работают с одним и тем же набором данных, с какой-то стратегией синхронизации (флаги/семафоры/блокировка CAS/и т.д.), чтобы, по-видимому, устранить условия гонки и тупиков. Проблема заключается в программном тестировании правильной синхронизации рабочих.