Silex v0.47.1 / Docs Source canonique ↗

Protéger un état partagé

Un bloc mutex exécute une modification partagée en tenant l'unique verrou de section critique du processus Silex.

func main() {
    var pending:int[] = []

    mutex {
        pending.append(42)
    }

    print(pending[0])
}

Le verrou est récursif : le code protégé peut appeler une fonction qui ouvre elle-même un bloc mutex. Silex le libère à chaque sortie du bloc, y compris avec return, break, continue ou la propagation récupérable de try.

Il n'existe volontairement aucune opération manuelle lock ou unlock. La portée lexicale du bloc garantit que le verrou ne reste pas détenu après une sortie anticipée.

Revenir au contrôle de l'exécution · Retourner une erreur récupérable