summaryrefslogtreecommitdiff
path: root/exsamples
diff options
context:
space:
mode:
Diffstat (limited to 'exsamples')
-rw-r--r--exsamples/Main.hs19
1 files changed, 11 insertions, 8 deletions
diff --git a/exsamples/Main.hs b/exsamples/Main.hs
index ebc81b02..4eb09043 100644
--- a/exsamples/Main.hs
+++ b/exsamples/Main.hs
@@ -15,15 +15,13 @@ main = do
15 [path] <- getArgs 15 [path] <- getArgs
16 torrent <- fromFile path 16 torrent <- fromFile path
17 17
18 client <- newClient 2 [] 18 print (contentLayout "./" (tInfo torrent))
19
20 client <- newClient 100 []
19 swarm <- newLeacher client torrent 21 swarm <- newLeacher client torrent
20 22
23 ref <- liftIO $ newIORef 0
21 discover swarm $ do 24 discover swarm $ do
22 ref <- liftIO $ newIORef 0
23
24 addr <- asks connectedPeerAddr
25 liftIO $ print $ "connected to" ++ show addr
26
27 forever $ do 25 forever $ do
28 e <- awaitEvent 26 e <- awaitEvent
29 case e of 27 case e of
@@ -33,9 +31,14 @@ main = do
33 Want bix -> liftIO $ print bix 31 Want bix -> liftIO $ print bix
34 Fragment blk -> do 32 Fragment blk -> do
35 33
34 sc <- liftIO $ getSessionCount swarm
35 addr <- asks connectedPeerAddr
36
36 liftIO $ do 37 liftIO $ do
37 readIORef ref >>= print 38 x <- atomicModifyIORef ref (\x -> (succ x, x))
38 modifyIORef ref succ 39 if x `mod` 100 == 0
40 then print (x, sc, addr)
41 else return ()
39 42
40 yieldEvent (Want (BlockIx 0 0 (16 * 1024))) 43 yieldEvent (Want (BlockIx 0 0 (16 * 1024)))
41 44