MCPcopy Create free account
hub / github.com/apache/arrow / MakeReadaheadIterator

Function MakeReadaheadIterator

cpp/src/arrow/util/async_generator.h:1927–1940  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1925/// MakeGeneratorIterator.
1926template <typename T>
1927Result<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///

Callers 1

InitMethod · 0.85

Calls 1

MakeGeneratorIteratorFunction · 0.85

Tested by

no test coverage detected