Issue #12280 has been updated by Benoit Daloze.


Eric Wong wrote:
> eregontp / gmail.com wrote:
>  > IO.copy_stream on Windows with IO having an offset fails with:
>  > NotImplementedError: pread() not implemented
>  > 
>  > This seems suboptimal, should a clearer be reported?
>  
>  Not sure.  Maybe include a bug report address to get pread
>  implemented in Windows? :)
>  
>  > Is it a platform limitation?
>  
>  Yes, it's a platform limitation.
>  
>  lseek+read can be used to workaround the limitation in
>  single-threaded programs only (and only as long as the FD is not
>  shared across fork; maybe FD sharing across fork isn't possible
>  in Windows...)
>  
>  But I guess an error message is better than a racy workaround
>  which can corrupt data with concurrent access.

Thanks for the quick reply!

For me, having a message like:
"NotImplementedError: IO.copy_stream with offset is not supported on Windows since it is not atomic"
would be a good enough fix for this.

----------------------------------------
Bug #12280: IO.copy_stream(IO, IO) fails with "pread() not implemented"
https://bugs.ruby-lang.org/issues/12280#change-58069

* Author: Benoit Daloze
* Status: Open
* Priority: Normal
* Assignee: 
* ruby -v: 
* Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN
----------------------------------------
IO.copy_stream on Windows with IO having an offset fails with:
NotImplementedError: pread() not implemented

This seems suboptimal, should a clearer be reported?
Is it a platform limitation?



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>