snap-core 0.2.2 → 0.2.3
raw patch · 2 files changed
+10/−6 lines, 2 files
Files
- snap-core.cabal +1/−1
- src/Snap/Iteratee.hs +9/−5
snap-core.cabal view
@@ -1,5 +1,5 @@ name: snap-core-version: 0.2.2+version: 0.2.3 synopsis: Snap: A Haskell Web Framework (Core) description:
src/Snap/Iteratee.hs view
@@ -107,11 +107,11 @@ -- -- Our enumerators produce a lot of little strings; rather than spending all -- our time doing kernel context switches for 4-byte write() calls, we buffer--- the iteratee to send 2KB at a time.+-- the iteratee to send 8KB at a time. bufferIteratee :: (Monad m) => Enumerator m a bufferIteratee = return . go (D.empty,0) where- blocksize = 2048+ blocksize = 8192 --go :: (DList ByteString, Int) -> Iteratee m a -> Iteratee m a go (!dl,!n) iter = IterateeG $! f (dl,n) iter@@ -154,10 +154,14 @@ ------------------------------------------------------------------------------ -- | Enumerates a lazy bytestring. enumLBS :: (Monad m) => L.ByteString -> Enumerator m a-enumLBS lbs iter = foldM k iter enums+enumLBS lbs = el chunks where- enums = map (enumPure1Chunk . WrapBS) $ L.toChunks lbs- k i e = e i+ el [] i = return i+ el (x:xs) i = do+ i' <- enumBS x i+ el xs i'++ chunks = L.toChunks lbs ------------------------------------------------------------------------------