[
https://issues.apache.org/jira/browse/ARROW-2490?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Rok Mihevc updated ARROW-2490:
------------------------------
External issue URL: https://github.com/apache/arrow/issues/15706
> [C++] input stream locking inconsistent
> ---------------------------------------
>
> Key: ARROW-2490
> URL: https://issues.apache.org/jira/browse/ARROW-2490
> Project: Apache Arrow
> Issue Type: Bug
> Components: C++
> Affects Versions: 0.9.0
> Reporter: Antoine Pitrou
> Assignee: Antoine Pitrou
> Priority: Major
> Labels: pull-request-available
> Fix For: 0.15.0
>
> Time Spent: 6h 20m
> Remaining Estimate: 0h
>
> Reading from the current file pointer is inherently thread-unsafe, since the
> file pointer may be updated by another thread (either before or during the
> operation). However, currently, we have:
> * {{ReadableFile::Read}} takes a lock
> * {{MemoryMappedFile::Read}} doesn't take a lock
> * {{BufferReader::Read}} doesn't take a lock
> We could always take a lock in {{Read}}. But I don't think there's a pattern
> where it's useful to call {{Read}} from multiple threads at once (since
> you're not sure where the file pointer will be exactly when the read starts).
> So we could as well specify that {{Read}} isn't thread-safe and let people
> make sure they don't call it from multiple threads.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)