git.net

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jira] [Created] (ARROW-2490) [C++] input stream locking inconsistent


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)



( ! ) Warning: include(msgfooter.php): failed to open stream: No such file or directory in /var/www/git/apache-arrow-development/msg04248.html on line 95
Call Stack
#TimeMemoryFunctionLocation
10.0007363584{main}( ).../msg04248.html:0

( ! ) Warning: include(): Failed opening 'msgfooter.php' for inclusion (include_path='.:/var/www/git') in /var/www/git/apache-arrow-development/msg04248.html on line 95
Call Stack
#TimeMemoryFunctionLocation
10.0007363584{main}( ).../msg04248.html:0