From f4dcfabd826ce8a43b9d4c41706fa8b95fb81acd Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sat, 12 Oct 2013 21:32:44 +0000 Subject: IO#nread compatibility for Rubinius (Linux-only) We don't deal with user-space buffers, so we should be fine using this compatibility layer and only checking the kernel buffers (until rbx implements a proper solution). --- lib/dtas/compat_rbx.rb | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 lib/dtas/compat_rbx.rb (limited to 'lib/dtas/compat_rbx.rb') diff --git a/lib/dtas/compat_rbx.rb b/lib/dtas/compat_rbx.rb new file mode 100644 index 0000000..a64bf78 --- /dev/null +++ b/lib/dtas/compat_rbx.rb @@ -0,0 +1,12 @@ +# Copyright (C) 2013, Eric Wong and all contributors +# License: GPLv3 or later (https://www.gnu.org/licenses/gpl-3.0.txt) + +# ref: https://github.com/rubysl/rubysl-io-wait/issues/1 +# this ignores buffers and is Linux-only +class IO + def nread + buf = "\0" * 8 + ioctl(0x541B, buf) + buf.unpack("l_")[0] + end +end if ! IO.method_defined?(:nread) && RUBY_PLATFORM =~ /linux/ -- cgit v1.2.3-24-ge0c7