1nr = 1_000_000
2i = 0
3msg = '.'
4buf = '.'
5begin
6  r, w = IO.pipe
7  while i < nr
8    i += 1
9    w.write_nonblock(msg, exception: false)
10    r.read_nonblock(1, buf, exception: false)
11  end
12rescue ArgumentError # old Rubies
13  while i < nr
14    i += 1
15    w.write_nonblock(msg)
16    r.read_nonblock(1, buf)
17  end
18ensure
19  r.close
20  w.close
21end
22