У нас есть две нити, которые записываются в Handle
, обертывая Socket
. Handle полезен, потому что MVar вокруг него гарантирует, что только один поток может писать ему сразу.Неблокирующее закрытие ручки Haskell
Мы требуем, чтобы один из потоков был способен закрыть Ручку, даже если другой поток находится в середине записи - вызов для записи должен получить ошибку. Проблема в том, что функция hclose
блокирует до тех пор, пока не будет иметь эксклюзивный доступ. Каков наилучший способ решения этой проблемы?