Получи случайную криптовалюту за регистрацию!

Что такое Thread Sanitizer и при чём тут гонки данных в Swift? | iOS Dev

Что такое Thread Sanitizer и при чём тут гонки данных в Swift?

Thread Sanitizer, также известный как TSan — это инструмент на базе LLVM для изучения проблем с потоками в вашем коде, написанном на языках Swift и C. Он был впервые представлен в Xcode 8 и может стать отличным инструментом для поиска менее заметных ошибок в коде, например, гонок данных.

Автор этой статьи делится, как Thread Sanitizer помог решить проблемы с нестабильными тестами и странными сбоями, в которых не получалось точно определить причину.

Возможно, вы не использовали TSan раньше, поскольку может быть немного непонятно, что делает этот инструмент и как он работает.

В материале затрагиваются важные темы:

Что такое гонки данных (data races).

Примеры гонки данных в Swift.

Использование Thread Sanitizer для обнаружения гонок данных.

Ограничения для Thread Sanitizer.

Подходы к решению гонки данных. Также стоит обратить внимание на эту статью и этот пост.

@iOS Dev