| 1925 | /// MakeGeneratorIterator. |
| 1926 | template <typename T> |
| 1927 | Result<Iterator<T>> MakeReadaheadIterator(Iterator<T> it, int readahead_queue_size) { |
| 1928 | ARROW_ASSIGN_OR_RAISE(auto io_executor, internal::ThreadPool::Make(1)); |
| 1929 | auto max_q = readahead_queue_size; |
| 1930 | auto q_restart = std::max(1, max_q / 2); |
| 1931 | ARROW_ASSIGN_OR_RAISE( |
| 1932 | auto background_generator, |
| 1933 | MakeBackgroundGenerator(std::move(it), io_executor.get(), max_q, q_restart)); |
| 1934 | // Capture io_executor to keep it alive as long as owned_bg_generator is still |
| 1935 | // referenced |
| 1936 | AsyncGenerator<T> owned_bg_generator = [io_executor, background_generator]() { |
| 1937 | return background_generator(); |
| 1938 | }; |
| 1939 | return MakeGeneratorIterator(std::move(owned_bg_generator)); |
| 1940 | } |
| 1941 | |
| 1942 | /// \brief Make a generator that returns a single pre-generated future |
| 1943 | /// |
no test coverage detected