Est-ce que la partie "else" de orElse
est appelée lorsqu'une transaction est relancée à cause d'une autre transaction qui écrit dans un TVar
qu'elle a lu, ou seulement lorsque retry
est explicitement appelée?Haskell: TVar: orElse
11
A
Répondre
10
Si vous avez
OrElse a b
alors b
est exécuté que si retry
est appelé explicitement dans a
. Sinon, orElse
deviendrait essentiellement non déterministe. (La réexécution des transactions effectuée par le moteur d'exécution STM est transparente et ne devrait affecter le résultat d'aucun calcul.)
Questions connexes
- 1. Haskell: TVar: Prévention de la famine
- 2. Différence entre TVar et TMVar
- 3. inattendue comportement « OrElse » dans LINQ requête
- 4. Quand/pourquoi utiliser un MVar sur un TVar
- 5. mise en œuvre de l'algorithme unifient dans haskell
- 6. OrElse Java 8 ne fonctionne pas comme prévu
- 7. Comment écrire une version paresseuse, variable d'arguments de "orElse"
- 8. (OrElse et Or) et (AndAlso et Et) - Quand utiliser?
- 9. Haskell
- 10. Haskell FlatMap
- 11. Fibonacci haskell
- 12. Haskell Monad.Writer
- 13. Haskell - MonadState
- 14. Haskell Paperfolding
- 15. permutation haskell
- 16. Haskell & Oracle
- 17. Minimax haskell
- 18. Haskell - Tableau
- 19. Recursion Haskell
- 20. Haskell Liste
- 21. Haskell débutant
- 22. Haskell Conditionals
- 23. haskell tri
- 24. Haskell Knapsack
- 25. Comment marquer une cellule vide dans une rangée et marquer cette ligne comme 0 orelse 1?
- 26. Pourquoi n'existe-t-il pas une méthode orElse sur PartialFunction qui accepte une fonction totale?
- 27. Syntaxe scala pour accéder à la propriété d'une option inline et chaîne "OrElse"?
- 28. Installations pour générer des types Haskell à Haskell ("second order Haskell")?
- 29. fichier haskell-process introuvable dans le mode haskell
- 30. Haskell Exemple d'état dans wikibooks: fixer par courant Haskell?