diff options
Diffstat (limited to 'kad/tests/searchCancel.hs')
-rw-r--r-- | kad/tests/searchCancel.hs | 12 |
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 | |||
10 | import Network.Kademlia.Routing | 10 | import Network.Kademlia.Routing |
11 | import Network.Kademlia.Search | 11 | import Network.Kademlia.Search |
12 | 12 | ||
13 | import Network.QueryResponse as QR | ||
13 | import qualified Data.MinMaxPSQ as MM | 14 | import qualified Data.MinMaxPSQ as MM |
14 | import qualified Data.Set as Set | 15 | import qualified Data.Set as Set |
15 | 16 | ||
16 | makeSchResults :: TVar (Maybe (SearchState Int Int () Int Int)) -> TVar Int -> IO (Maybe ([Int],[Int],Maybe ())) | 17 | makeSchResults :: TVar (Maybe (SearchState Int Int () Int Int Int)) -> TVar Int -> IO (Maybe ([Int],[Int],Maybe ())) |
17 | makeSchResults mbv var = do | 18 | makeSchResults 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 | ||
45 | sch :: TVar (Maybe (SearchState Int Int () Int Int)) -> TVar Int -> Search Int Int () Int Int | 47 | sch :: TVar (Maybe (SearchState Int Int () Int Int Int)) -> TVar Int -> Search Int Int () Int Int Int |
46 | sch mbv var = Search | 48 | sch 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 | } |