Antoine Pitrou created ARROW-2490: ------------------------------------- Summary: [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
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 (v7.6.3#76005)