From 5e2f43d967aa2d07368b7d5552f65a69b3979ab5 Mon Sep 17 00:00:00 2001 From: joe Date: Thu, 5 Jan 2017 12:18:43 -0500 Subject: Routing Table : use STM and per-bucket ping queues --- src/Network/BitTorrent/DHT/Session.hs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/Network/BitTorrent/DHT/Session.hs') diff --git a/src/Network/BitTorrent/DHT/Session.hs b/src/Network/BitTorrent/DHT/Session.hs index 2bb3ce85..5a8d64ef 100644 --- a/src/Network/BitTorrent/DHT/Session.hs +++ b/src/Network/BitTorrent/DHT/Session.hs @@ -243,7 +243,7 @@ data Node ip = Node , resources :: !InternalState , manager :: !(Manager (DHT ip)) -- ^ RPC manager; - , routingTable :: !(MVar (Table ip)) -- ^ search table; + , routingTable :: !(TVar (Table ip)) -- ^ search table; , contactInfo :: !(TVar (PeerStore ip)) -- ^ published by other nodes; , announceInfo :: !(TVar AnnounceSet ) -- ^ to publish by this node; , sessionTokens :: !(TVar SessionTokens) -- ^ query session IDs. @@ -323,7 +323,7 @@ newNode hs opts naddr logger mbid = do liftIO $ do myId <- maybe genNodeId return mbid node <- Node opts myId s m - <$> newMVar (nullTable myId (optBucketCount opts)) + <$> atomically (newTVar (nullTable myId (optBucketCount opts))) <*> newTVarIO def <*> newTVarIO S.empty <*> (newTVarIO =<< nullSessionTokens) @@ -381,7 +381,7 @@ checkToken addr questionableToken = do getTable :: DHT ip (Table ip) getTable = do var <- asks routingTable - liftIO (readMVar var) + liftIO (atomically $ readTVar var) -- | Find a set of closest nodes from routing table of this node. (in -- no particular order) -- cgit v1.2.3