2012-04-11 4 views
11

TVarへの別のトランザクション書き込みによってトランザクションが再試行されたとき、またはretryが明示的に呼び出されたときにのみ、elseの部分が呼び出されますか?orElseHaskell:TVar:orElse

答えて

10

あなたはretryaで明示的に呼び出された場合

のみが実行され、その後b B

をorElse持っている場合。それ以外の場合、orElseは本質的に非決定的になります。 (STMランタイムによって実行されるトランザクションの再実行は透過的であり、計算の結果に影響を与えるべきではありません)