Что такое Thread Sanitizer и при чём тут гонки данных в Swift?Thread Sanitizer, также известный как
TSan — это инструмент на базе LLVM для изучения проблем с потоками в вашем коде, написанном на языках Swift и C. Он был впервые представлен в
Xcode 8 и может стать отличным инструментом для поиска менее заметных ошибок в коде, например,
гонок данных.
Автор этой статьи делится, как
Thread Sanitizer помог решить проблемы с
нестабильными тестами и
странными сбоями, в которых не получалось точно определить причину.
Возможно, вы не использовали TSan раньше, поскольку может быть немного непонятно, что делает этот инструмент и как он работает.
В материале затрагиваются важные темы:
Что такое
гонки данных (data races).
Примеры гонки данных в
Swift.
Использование
Thread Sanitizer для обнаружения гонок данных.
Ограничения для
Thread Sanitizer.
Подходы к решению гонки данных. Также стоит обратить внимание на эту статью и этот пост.
@iOS Dev