[ 
https://issues.apache.org/jira/browse/ARROW-12208?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Neal Richardson reassigned ARROW-12208:
---------------------------------------

    Assignee: Weston Pace

> [C++] Add the ability to run async tasks without using the CPU thread pool
> --------------------------------------------------------------------------
>
>                 Key: ARROW-12208
>                 URL: https://issues.apache.org/jira/browse/ARROW-12208
>             Project: Apache Arrow
>          Issue Type: Improvement
>          Components: C++
>            Reporter: Weston Pace
>            Assignee: Weston Pace
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 4.0.0
>
>          Time Spent: 7h 40m
>  Remaining Estimate: 0h
>
> This is required allow Windows 32-bit RTools 3.5 builds avoid crashing as 
> they don't seem to properly implement the `<threading>` header.
>  
> However, it could be generally useful to anyone that wants to avoid thread 
> creation.
>  
> Currently, the asynchronous approaches introduce necessary threading.  For 
> example, even a simple call to check if the CSVFileFormat supports a file 
> requires peeking the file and reading the first block.  These I/O operations 
> happen on the I/O pools and then are transferred to the CPU thread pool 
> (which is NOT the same thing as the calling thread) meanwhile the calling 
> thread is blocked waiting for results.
>  
> This can be avoided by treating the calling thread as a single threaded 
> thread pool and then using that as the CPU thread pool.  This allows all CPU 
> work to be done on the calling thread alone.  This could also allow us to 
> remove duplicate code paths (e.g. code paths that exist only to keep 
> functions serial such as the serial CSV reader) in the future.
>  
> This capability could be extended to include the I/O thread pool as well at 
> some point in the future.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to