[GHC] #8529: Sequent reading from socket/connection on Windows fails
GHC
ghc-devs at haskell.org
Wed Nov 13 12:37:03 UTC 2013
#8529: Sequent reading from socket/connection on Windows fails
-------------------------------------+-------------------------------------
Reporter: Heimdell | Owner:
Type: bug | Status: new
Priority: normal | Milestone:
Component: | Version: 7.4.2
libraries/haskell2010 | Operating System: Windows
Keywords: sockets, windows, | Type of failure: Incorrect result
read failure | at runtime
Architecture: Unknown/Multiple | Test Case:
Difficulty: Unknown | Blocking:
Blocked By: |
Related Tickets: |
-------------------------------------+-------------------------------------
I wrote a simple TCP-client, which consumes and produces 8-byte packets.
When I run it on linux, it works perfectly, being part of the loop (write-
read-write-read-...).
On windows it receives only first msg from the other side (write-read-
write-write-...). The packets are still going, although.
Before that, I used the sockets directly; changing to HandleStream didn't
help.
The code is:
{{{
transmit :: Int -> HandleStream ByteString -> ByteString -> IO
[Bytestring]
transmit delay sock packet = do
let input = timeout delay $ sock `readBlock` 8 <* putStrLn "\nData was
read!"
sock `writeBlock` pack
strings <- whileJust input
return [str | Right str <- strings]
whileJust action = do
result <- action
case result of
Just a -> (:) <$> return a <*> whileJust action
Nothing -> return []
}}}
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/8529>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list