http2 1.0.3 → 1.0.4
raw patch · 2 files changed
+17/−4 lines, 2 files
Files
- Network/HTTP2/RandomSkewHeap.hs +16/−3
- http2.cabal +1/−1
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