packages feed

http2 1.0.3 → 1.0.4

raw patch · 2 files changed

+17/−4 lines, 2 files

Files

Network/HTTP2/RandomSkewHeap.hs view
@@ -49,12 +49,13 @@ insert :: a -> Weight -> Heap a -> Heap a insert a w t = merge (singleton a w) t +-- if l is a singleton, w1 == tw1. merge :: Heap t -> Heap t -> Heap t merge t Leaf = t merge Leaf t = t-merge l@(Node tw1 a1 w1 l1 r1) r@(Node tw2 a2 w2 l2 r2)-  | g <= w1   = Node tw a1 w1 r1 $ merge l1 r-  | otherwise = Node tw a2 w2 r2 $ merge l2 l+merge l@(Node tw1 x1 w1 ll lr) r@(Node tw2 x2 w2 rl rr)+  | g <= tw1  = Node tw x1 w1 lr $ merge ll r+  | otherwise = Node tw x2 w2 rr $ merge rl l   where     tw = tw1 + tw2     g = unsafePerformIO $ uniformR (1,tw) gen@@ -69,3 +70,15 @@ gen :: GenIO gen = unsafePerformIO createSystemRandom {-# NOINLINE gen #-}++main = do+    let q = insert "c" 1 $ insert "b" 101 $ insert "a" 201 empty+    loop 1000 q+  where+    loop 0 _ = return ()+    loop n q = do+        case uncons q of+            Nothing -> error "Nothing"+            Just (x, w, q') -> do+                putStrLn x+                loop (n-1) (insert x w q')
http2.cabal view
@@ -1,5 +1,5 @@ Name:                   http2-Version:                1.0.3+Version:                1.0.4 Author:                 Kazu Yamamoto <kazu@iij.ad.jp> Maintainer:             Kazu Yamamoto <kazu@iij.ad.jp> License:                BSD3