[commit: base] master: BufferedIO: fix bug in writeBufNonBlocking introduced by commit 7d39e100 (040313e)
Joey Adams
joeyadams at galois.com
Fri Dec 28 19:12:27 CET 2012
Repository : ssh://darcs.haskell.org//srv/darcs/packages/base
On branch : master
http://hackage.haskell.org/trac/ghc/changeset/040313eb7d79aca47cb897479c6bca1af5e2ffb3
>---------------------------------------------------------------
commit 040313eb7d79aca47cb897479c6bca1af5e2ffb3
Author: Joey Adams <joeyadams3.14159 at gmail.com>
Date: Mon Dec 24 12:44:22 2012 -0500
BufferedIO: fix bug in writeBufNonBlocking introduced by commit 7d39e100
bufferAdjustL does nothing but update bufL, and set bufL = bufR = 0
when bufL == bufR. It ignores the old bufL.
writeBufNonBlocking is currently unused. It is only used to implement
flushWriteBuffer0, which is never called by base
(hPutBufNonBlocking uses a blocking flush).
>---------------------------------------------------------------
GHC/IO/BufferedIO.hs | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/GHC/IO/BufferedIO.hs b/GHC/IO/BufferedIO.hs
index ef78d90..b715c61 100644
--- a/GHC/IO/BufferedIO.hs
+++ b/GHC/IO/BufferedIO.hs
@@ -123,5 +123,5 @@ writeBufNonBlocking dev bbuf = do
let bytes = bufferElems bbuf
res <- withBuffer bbuf $ \ptr ->
IODevice.writeNonBlocking dev (ptr `plusPtr` bufL bbuf) bytes
- return (res, bufferAdjustL res bbuf)
+ return (res, bufferAdjustL (bufL bbuf + res) bbuf)
More information about the Cvs-libraries
mailing list