Mam transakcji niepowodzeniem na czas nieokreślony z jakiegoś powodu, a ja chciałbym użyć instrukcji śledzenia wewnątrz. Na przykład, aby wydrukować stan MVar użytkownika przed wykonaniem transakcji w tym fragmencie:Czy bezpiecznie jest używać śledzenia wewnątrz transakcji STM?
data_out <- atomically $ do
rtg_state <- takeTMVar ready_to_go
JobDescr hashid url <- T.readTBChan next_job_descr
case rtg_state of
Ready_RTG n -> do
putTMVar ready_to_go $ Processing_RTG n
putTMVar start_harvester_browser hashid
putTMVar next_test_url_to_check_chan hashid
putTMVar next_harvest_url hashid
return (n,hashid,url)
_ -> retry
Czy to sprawi, że segfault program lub miss-zachowywać?
Kod antyrakietowy będzie przechowywany w monadzie IO. Dzięki! – dsign
Uważam, że warto podkreślić, że nie jest to jednorazowy wystrzał rakiet, który daje poważne międzynarodowe skutki uboczne w tym przypadku - to 735 salw jądrowych, gdy transakcja została ponowiona kilka razy trzeba uważać. ;) – kqr