Tôi có giao dịch bị vô thời hạn vì một số lý do và tôi muốn sử dụng các hướng dẫn theo dõi bên trong. Ví dụ: để in trạng thái của MVar trước khi thực hiện giao dịch trong đoạn này:Có an toàn khi sử dụng dấu vết bên trong sự phân chia STM không?
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
Điều đó có làm cho chương trình bị phân đoạn hoặc bỏ lỡ hoạt động không?
Mã khởi chạy tên lửa sẽ được giữ sau đó trong đơn IO. Cảm ơn! – dsign
Tôi thấy nó đáng để chỉ ra rằng nó không phải là một sự phóng tên lửa đơn lẻ mang lại những tác dụng phụ nghiêm trọng trong trường hợp này - đó là 735 hạt nhân khi giao dịch được thử lại nhiều lần bạn phải cẩn thận. ;) – kqr