Skip to content

Commit 4ed78d4

Browse files
committed
Check IO buffer when polling for reading.
1 parent b86c276 commit 4ed78d4

File tree

2 files changed

+5
-0
lines changed

2 files changed

+5
-0
lines changed

lib/truffle/io/wait.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ def nread
1313
end
1414

1515
def ready?
16+
ensure_open_and_readable
1617
Truffle::IOOperations.poll(self, Truffle::IOOperations::POLLIN, 0) > 0
1718
end
1819

src/main/ruby/truffleruby/core/truffle/io_operations.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,10 @@ def self.select(readables, readable_ios, writables, writable_ios, errorables, er
200200
end
201201

202202
def self.poll(io, events, timeout)
203+
if (events & POLLIN) != 0
204+
return 1 unless io.__send__(:buffer_empty?)
205+
end
206+
203207
if timeout
204208
unless Primitive.object_kind_of? timeout, Numeric
205209
raise TypeError, 'Timeout must be numeric'

0 commit comments

Comments
 (0)