git.iko.soy/distributed-process
on master help sign in
Added a close routine for Pipes that removes the named pipe from disk
af7778cRyan Newton
network-transport/src/Network/Transport/Pipes.hs+4−4
@@ -33,7 +33,7 @@ import System.IO (IOMode(ReadMode,AppendMode,WriteMode,ReadWriteMode),
33 openFile, hClose, hPutStrLn, hPutStr, stderr, stdout, hFlush)
33 openFile, hClose, hPutStrLn, hPutStr, stderr, stdout, hFlush)
34import System.Posix.Files (createNamedPipe, unionFileModes, ownerReadMode, ownerWriteMode)
34import System.Posix.Files (createNamedPipe, unionFileModes, ownerReadMode, ownerWriteMode)
35import System.Posix.Types (Fd)
35import System.Posix.Types (Fd)
36−import System.Directory (doesFileExist)
36+import System.Directory (doesFileExist, removeFile)
37
37
38-- define DEBUG
38-- define DEBUG
39-- define USE_UNIX_BYTESTRING
39-- define USE_UNIX_BYTESTRING
@@ -86,9 +86,7 @@ mkTransport = do
86 mkTargetEnd filename lock)
86 mkTargetEnd filename lock)
87 , newMulticastWith = error "Pipes.hs: newMulticastWith not implemented yet"
87 , newMulticastWith = error "Pipes.hs: newMulticastWith not implemented yet"
88 , deserialize = \bs -> return$ mkSourceAddr (BS.unpack bs)
88 , deserialize = \bs -> return$ mkSourceAddr (BS.unpack bs)
89− , closeTransport = do
90−-- removeFile filename
89+ , closeTransport = removeFile filename
91− return ()
92 }
90 }
93 where
91 where
94 mkSourceAddr :: String -> SourceAddr
92 mkSourceAddr :: String -> SourceAddr
@@ -128,6 +126,7 @@ mkTransport = do
128 error$ "Failed to write message in one go, length: "++ show (BS.length finalmsg)
126 error$ "Failed to write message in one go, length: "++ show (BS.length finalmsg)
129 ----------------------------------------
127 ----------------------------------------
130 return ()
128 return ()
129+ , closeSourceEnd = error "Pipes.hs: closeSourceEnd not yet implemented"
131 }
130 }
132
131
133 mkTargetEnd :: String -> MVar () -> TargetEnd
132 mkTargetEnd :: String -> MVar () -> TargetEnd
@@ -170,6 +169,7 @@ mkTransport = do
170 Right size -> spinread (fromIntegral (size::Word32))
169 Right size -> spinread (fromIntegral (size::Word32))
171 putMVar lock ()
170 putMVar lock ()
172 return [payload]
171 return [payload]
172+ , closeTargetEnd = error "Pipes.hs: closeTargetEnd not yet implemented"
173 }
173 }
174
174
175spinTillThere :: String -> IO ()
175spinTillThere :: String -> IO ()