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

- 👍 17
- 🔥 6
- 👏 1