Sendable en Swift 6: seguridad de concurrencia en tiempo de compilación

Cuando gestionas la sincronización manualmente (lock, dispatch queue) y puedes garantizar la seguridad, usa @unchecked Sendable para indicarle al compilador que confíe en tu código:

final class StoreSegura: @unchecked Sendable {
    private let lock = NSLock()
    private var _valor = 0

    var valor: Int {
        lock.lock(); defer { lock.unlock() }
        return _valor
    }
}

Data races en Swift 6

Con Swift 6 y SWIFT_STRICT_CONCURRENCY = complete, el compilador detecta data races potenciales en tiempo de compilación. La estrategia de migración recomendada es: empezar con un proyecto nuevo en Swift 6, o habilitar la verificación módulo a módulo en proyectos existentes.

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP