Я видел, что TVar
представляет собой простой контейнер, а TMVar
совпадает с MVar
, то есть имеет блокировку и т.д., но внутри монады STM
. Мне интересно, почему это необходимо, поскольку идея STM
заключается в том, чтобы сделать блокировки ненужными.
Итак, какой именно использовать, если у вас есть тип типа [Handle]
список дескрипторов сокетов, которые вы хотите использовать между потоками, созданными forkIO
?