Haskell 终止Scotty应用程序后的清理
我有一个Scotty应用程序,它监听Unix套接字。我希望应用程序在退出套接字时(即键入Ctrl-C时)删除该套接字,但我不确定如何实现这一点。我的Haskell 终止Scotty应用程序后的清理,haskell,scotty,Haskell,Scotty,我有一个Scotty应用程序,它监听Unix套接字。我希望应用程序在退出套接字时(即键入Ctrl-C时)删除该套接字,但我不确定如何实现这一点。我的main函数如下所示 main = do sock <- socket AF_UNIX Stream 0 bind sock $ SockAddrUnix "/tmp/my_app.sock" listen sock maxListenQueue scottySocket def sock $ do
main
函数如下所示
main = do
sock <- socket AF_UNIX Stream 0
bind sock $ SockAddrUnix "/tmp/my_app.sock"
listen sock maxListenQueue
scottySocket def sock $ do
...
removeFile "/tmp/my_app.sock"
main=do
sock最简单的原则方法可能是使用from控件。异常
:
main = bracket acquireSock cleanupSock $ \(sock, _) -> do
listen sock maxListenQueue
scottySocket def sock $ do
...
where
-- Acquiring the resource.
acquireSock = do
sock <- socket AF_UNIX Stream 0
let sockPath = "/tmp/my_app.sock"
bind sock $ SockAddrUnix sockPath
return (sock, sockPath)
-- Releasing the resource.
cleanupSock (sock, sockPath) = do
removeFile sockPath
close sock
main=bracket acquiredsock cleanupSock$\(sock,\)->do
听sock maxListenQueue
scottySocket def袜子$do
...
哪里
--获取资源。
acquireSock=do
短袜