update readpartial document.

don't try read timeout on Windows.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7752 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
akr 2005-01-08 18:18:36 +00:00
parent 563a79c756
commit 16b5ba2707
2 changed files with 8 additions and 6 deletions

12
io.c
View File

@ -1241,7 +1241,7 @@ io_getpartial(int argc, VALUE *argv, VALUE io)
* readpartial is designed for streams such as pipe, socket, tty, etc. * readpartial is designed for streams such as pipe, socket, tty, etc.
* It blocks only when no data immediately available. * It blocks only when no data immediately available.
* This means that it blocks only when following all conditions hold. * This means that it blocks only when following all conditions hold.
* * the stdio buffer in the IO object is empty. * * the buffer in the IO object is empty.
* * the content of the stream is empty. * * the content of the stream is empty.
* * the stream is not reached to EOF. * * the stream is not reached to EOF.
* *
@ -1250,23 +1250,23 @@ io_getpartial(int argc, VALUE *argv, VALUE io)
* If EOF is reached, readpartial raises EOFError. * If EOF is reached, readpartial raises EOFError.
* *
* When readpartial doesn't blocks, it returns or raises immediately. * When readpartial doesn't blocks, it returns or raises immediately.
* If the stdio buffer is not empty, it returns the data in the buffer. * If the buffer is not empty, it returns the data in the buffer.
* Otherwise if the stream has some content, * Otherwise if the stream has some content,
* it returns the data in the stream. * it returns the data in the stream.
* Otherwise if the stream is reached to EOF, it raises EOFError. * Otherwise if the stream is reached to EOF, it raises EOFError.
* *
* r, w = IO.pipe # stdio buffer pipe content * r, w = IO.pipe # buffer pipe content
* w << "abc" # "" "abc". * w << "abc" # "" "abc".
* r.readpartial(4096) #=> "abc" "" "" * r.readpartial(4096) #=> "abc" "" ""
* r.readpartial(4096) # blocks because buffer and pipe is empty. * r.readpartial(4096) # blocks because buffer and pipe is empty.
* *
* r, w = IO.pipe # stdio buffer pipe content * r, w = IO.pipe # buffer pipe content
* w << "abc" # "" "abc" * w << "abc" # "" "abc"
* w.close # "" "abc" EOF * w.close # "" "abc" EOF
* r.readpartial(4096) #=> "abc" "" EOF * r.readpartial(4096) #=> "abc" "" EOF
* r.readpartial(4096) # raises EOFError * r.readpartial(4096) # raises EOFError
* *
* r, w = IO.pipe # stdio buffer pipe content * r, w = IO.pipe # buffer pipe content
* w << "abc\ndef\n" # "" "abc\ndef\n" * w << "abc\ndef\n" # "" "abc\ndef\n"
* r.gets #=> "abc\n" "def\n" "" * r.gets #=> "abc\n" "def\n" ""
* w << "ghi\n" # "def\n" "ghi\n" * w << "ghi\n" # "def\n" "ghi\n"
@ -1277,7 +1277,7 @@ io_getpartial(int argc, VALUE *argv, VALUE io)
* It blocks even if the nonblocking-flag is set. * It blocks even if the nonblocking-flag is set.
* *
* Also note that readpartial behaves similar to sysread in blocking mode. * Also note that readpartial behaves similar to sysread in blocking mode.
* The behavior is identical when the stdio buffer is empty. * The behavior is identical when the buffer is empty.
* *
*/ */

View File

@ -43,6 +43,7 @@ class TestReadPartial < Test::Unit::TestCase
} }
end end
if !File::ALT_SEPARATOR # read on pipe cannot timeout on Windows.
def test_open_pipe def test_open_pipe
pipe {|r, w| pipe {|r, w|
w << 'abc' w << 'abc'
@ -67,6 +68,7 @@ class TestReadPartial < Test::Unit::TestCase
} }
} }
end end
end
end end