Я пытаюсь отладить программу, использующую STM. Показания ThreadScope указывают на очень высокую активность процессора, как вы можете видеть здесь:
Итак, я пытаюсь выяснить, происходит ли это из-за транзакции, которая часто прерывается. Первое, что я подумал, было использовать что-то вроде этого, чтобы проверить:
atomically $ do
someWork
...
`orElse` do
unsafeIOToSTM $ traceEventIO "transaction aborted!"
retry
Но я не уверен, что это правильно или если это лучший подход к отладке в сценарии STM. Любые идеи?