diff options
author | Sam Truzjan <pxqr.sta@gmail.com> | 2014-02-19 04:21:39 +0400 |
---|---|---|
committer | Sam Truzjan <pxqr.sta@gmail.com> | 2014-02-19 04:21:39 +0400 |
commit | d2ac4c0728b933929dad6e13083abc40be1b6f82 (patch) | |
tree | f62e76b12fb64c69e3ed7b2e087b95ff6e8af05e /src/Network/BitTorrent/DHT | |
parent | 644c06e66fd311cecabbc1cb08c53b4a1d350e27 (diff) |
Add MonadResource instance for DHT
Diffstat (limited to 'src/Network/BitTorrent/DHT')
-rw-r--r-- | src/Network/BitTorrent/DHT/Session.hs | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/Network/BitTorrent/DHT/Session.hs b/src/Network/BitTorrent/DHT/Session.hs index b4ff0208..75d3294f 100644 --- a/src/Network/BitTorrent/DHT/Session.hs +++ b/src/Network/BitTorrent/DHT/Session.hs | |||
@@ -250,6 +250,7 @@ newtype DHT ip a = DHT { unDHT :: ReaderT (Node ip) IO a } | |||
250 | deriving ( Functor, Applicative, Monad | 250 | deriving ( Functor, Applicative, Monad |
251 | , MonadIO, MonadBase IO | 251 | , MonadIO, MonadBase IO |
252 | , MonadReader (Node ip) | 252 | , MonadReader (Node ip) |
253 | , MonadThrow, MonadUnsafeIO | ||
253 | ) | 254 | ) |
254 | 255 | ||
255 | instance MonadBaseControl IO (DHT ip) where | 256 | instance MonadBaseControl IO (DHT ip) where |
@@ -263,6 +264,12 @@ instance MonadBaseControl IO (DHT ip) where | |||
263 | restoreM = DHT . restoreM . unSt | 264 | restoreM = DHT . restoreM . unSt |
264 | {-# INLINE restoreM #-} | 265 | {-# INLINE restoreM #-} |
265 | 266 | ||
267 | -- | All allocated resources will be closed at 'stopNode'. | ||
268 | instance MonadResource (DHT ip) where | ||
269 | liftResourceT m = do | ||
270 | s <- asks resources | ||
271 | liftIO $ runInternalState m s | ||
272 | |||
266 | instance MonadKRPC (DHT ip) (DHT ip) where | 273 | instance MonadKRPC (DHT ip) (DHT ip) where |
267 | getManager = asks manager | 274 | getManager = asks manager |
268 | 275 | ||