Ich versuche ein Programm zu debuggen, das STM verwendet. Die ThreadScope Lesungen werden der Hinweis auf eine sehr hohe Aktivität CPU, wie Sie hier sehen können:Wie erkennen Sie, ob eine Transaktion häufig abbricht?
Also, um herauszufinden, ich versuche, wenn dies aufgrund einer Transaktion geschieht, die häufig bricht. Das erste, was ich dachte, war, so etwas zu Test:
atomically $ do
someWork
...
`orElse` do
unsafeIOToSTM $ traceEventIO "transaction aborted!"
retry
Aber ich bin nicht sicher, ob dies richtig ist oder ob dies der beste Ansatz ist, in einem STM-Szenario zu debuggen. Irgendwelche Ideen?
Das hätte war auch mein Ansatz. – chi
Welche Ergebnisse haben Sie von diesem Ansatz erhalten? –
Es gibt keine Spuren. Wenn dieser Ansatz korrekt ist, wird keine Transaktion abgebrochen. – luisgabriel