summaryrefslogtreecommitdiff
path: root/kad/tests
diff options
context:
space:
mode:
authorJoe Crayne <joe@jerkface.net>2019-12-30 20:19:57 -0500
committerJoe Crayne <joe@jerkface.net>2020-01-07 13:24:59 -0500
commit5ea2de4e858cc89282561922bae257b6f9041d2e (patch)
tree075e72ee8409c315cbdb281a6faba32c18f9ab4c /kad/tests
parent15ab3290ad04280764968ba4760474a8c0cbfa52 (diff)
Switch to async search query design.
Diffstat (limited to 'kad/tests')
-rw-r--r--kad/tests/searchCancel.hs12
1 files changed, 9 insertions, 3 deletions
diff --git a/kad/tests/searchCancel.hs b/kad/tests/searchCancel.hs
index 85986674..33860a2f 100644
--- a/kad/tests/searchCancel.hs
+++ b/kad/tests/searchCancel.hs
@@ -10,11 +10,13 @@ import Network.Kademlia.Persistence
10import Network.Kademlia.Routing 10import Network.Kademlia.Routing
11import Network.Kademlia.Search 11import Network.Kademlia.Search
12 12
13import Network.QueryResponse as QR
13import qualified Data.MinMaxPSQ as MM 14import qualified Data.MinMaxPSQ as MM
14import qualified Data.Set as Set 15import qualified Data.Set as Set
15 16
16makeSchResults :: TVar (Maybe (SearchState Int Int () Int Int)) -> TVar Int -> IO (Maybe ([Int],[Int],Maybe ())) 17makeSchResults :: TVar (Maybe (SearchState Int Int () Int Int Int)) -> TVar Int -> IO (Maybe ([Int],[Int],Maybe ()))
17makeSchResults mbv var = do 18makeSchResults mbv var = do
19 putStrLn "makeSchResults"
18 threadDelay 200000 20 threadDelay 200000
19 (r,io) <- atomically $ do 21 (r,io) <- atomically $ do
20 n <- readTVar var 22 n <- readTVar var
@@ -42,11 +44,15 @@ kad = KademliaSpace
42 , kademliaSample = \_ x _ -> pure x 44 , kademliaSample = \_ x _ -> pure x
43 } 45 }
44 46
45sch :: TVar (Maybe (SearchState Int Int () Int Int)) -> TVar Int -> Search Int Int () Int Int 47sch :: TVar (Maybe (SearchState Int Int () Int Int Int)) -> TVar Int -> Search Int Int () Int Int Int
46sch mbv var = Search 48sch mbv var = Search
47 { searchSpace = kad 49 { searchSpace = kad
48 , searchNodeAddress = id 50 , searchNodeAddress = id
49 , searchQuery = \_ _ -> makeSchResults mbv var 51 , searchQuery = \_ _ f -> do r <- makeSchResults mbv var
52 let qk = maybe 0 (\(ns,_,_) -> head ns) r
53 f qk $ maybe TimedOut Success r
54 return qk
55 , searchQueryCancel = \_ -> return ()
50 , searchAlpha = 4 56 , searchAlpha = 4
51 , searchK = 8 57 , searchK = 8
52 } 58 }