Skip to content

Commit

Permalink
Merge pull request #3929 from headius/waitreadable_blocking
Browse files Browse the repository at this point in the history
waitReadable should block
  • Loading branch information
headius committed May 26, 2016
2 parents 276a7d2 + f4d66bd commit a65ad3a
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 2 deletions.
3 changes: 2 additions & 1 deletion core/src/main/java/org/jruby/RubyIO.java
Expand Up @@ -2853,9 +2853,10 @@ IRubyObject getPartial(ThreadContext context, IRubyObject[] args, boolean nonblo
// n = arg.len;
n = OpenFile.readInternal(context, fptr, fptr.fd(), strByteList.unsafeBytes(), strByteList.begin(), len);
if (n < 0) {
Errno e = fptr.errno();
if (!nonblock && fptr.waitReadable(context))
continue again;
if (nonblock && (fptr.errno() == Errno.EWOULDBLOCK || fptr.errno() == Errno.EAGAIN)) {
if (nonblock && (e == Errno.EWOULDBLOCK || e == Errno.EAGAIN)) {
if (noException) return runtime.newSymbol("wait_readable");
throw runtime.newErrnoEAGAINReadableError("read would block");
}
Expand Down
2 changes: 1 addition & 1 deletion core/src/main/java/org/jruby/util/io/OpenFile.java
Expand Up @@ -492,7 +492,7 @@ public boolean waitReadable(ThreadContext context, long timeout) {

// rb_io_wait_readable
public boolean waitReadable(ThreadContext context) {
return waitReadable(context, 0);
return waitReadable(context, -1);
}

/**
Expand Down

0 comments on commit a65ad3a

Please sign in to comment.