Le 22/07/2019 à 18:52, Wes McKinney a écrit : > > Probably the way is to introduce async-capable read APIs into the file > interfaces. For example: > > file->ReadAsyncBlock(thread_ctx, ...); > > That way the file implementation can decide whether asynchronous logic > is actually needed. > I doubt very much that a one-size-fits-all > concurrency solution can be developed -- in some applications > coarse-grained IO and CPU task scheduling may be warranted, but we > need to have a solution for finer-grained scenarios where > > * In the memory-mapped case, there is no overhead and > * The programming model is not too burdensome to the library developer
Well, the asynchronous I/O programming model *will* be burdensome at least until C++ gets coroutines (which may happen in C++20, and therefore be usable somewhere around 2024 for Arrow?). Regards Antoine.