Misc #14760

cross-thread IO#close semantics

Added by normalperson (Eric Wong) about 2 years ago. Updated about 2 years ago.



I wrote about cross-thread IO#close in ruby-core, but I'm not sure if it's a bug
or not to have missing support for and IO.copy_stream: -

IO.copy_stream -

I know the case in 1.9+ differs from 1.8, and IO.copy_stream wasn't in
1.8, but I guess the current behavior is that it isn't consistent with normal IO
methods. IO.copy_stream will also behave "normally" and raise IOError if it
somehow hits non-optimized cases and ends up calling Ruby methods, but my
example in [ruby-core:87040] did not hit that case.

On one hand, I'm not a fan of "nanny features" like deadlock detection for
threading. On the other hand, I value consistency and we already went down the
rabbit hole of supporting current users of rb_thread_io_blocking_region.

Anyways, I can implement these if desired since I have additional work planned
in this area anyways (auto-fiber).

Also available in: Atom PDF