Swift'te Data Races


Görsel Referansı


Merhaba, bu yazıda, bilgisayar bilimlerinde bir sorun olarak yer alan Data Races konusunu Swift perspektifinden inceleyeceğiz.


Data Races Nedir?


Bellekteki bir alan, birden fazla thread tarafından erişildiğinde ve bu erişimlerden en az birisi yazma erişimi olduğunda ortaya çıkan sorundur.


Data Races Ne Gibi Sorunlara Yol Açar?


- Kodumuzun beklenenin dışında çalışması.

- Bellek alanının corrupt olması.

- Bazen çalışan bazen çalışmayan (flaky) testler.

- Garip crash'ler.


Data Race'i Nasıl Tespit Edebiliriz?


Öncelikle yapmamız gereken, Xcode'de Thread Sanitizer'ı aktif hale getirmek olacak. Run -> Edit Scheme -> Diagnostics -> Enable Thread Sanitizer adımından Thread Sanitizer'ı aktif hale getiriyoruz.



Daha sonrasında kodumuzu çalıştırıp bize runtime esnasında uyarı veya duruma göre crash vermesine göre tespit edeceğiz.