on master help sign in
Vty: avoid race in "shutdown"
8207c14Jonathan Daugherty
src/Graphics/Vty.hs+1−2
@@ -119,9 +119,8 @@ intMkVty input out = do
119
119
120 shutdownVar <- atomically $ newTVar False
120 shutdownVar <- atomically $ newTVar False
121 let shutdownIo = do
121 let shutdownIo = do
122− alreadyShutdown <- atomically $ readTVar shutdownVar
122+ alreadyShutdown <- atomically $ swapTVar shutdownVar True
123 when (not alreadyShutdown) $ do
123 when (not alreadyShutdown) $ do
124− atomically $ writeTVar shutdownVar True
125 shutdownInput input
124 shutdownInput input
126 releaseDisplay out
125 releaseDisplay out
127 releaseTerminal out
126 releaseTerminal out