This module defines a Python-like Future and Executor for Uproot in three levels:
uproot.source.futures.Future, uproot.source.futures.Worker, and uproot.ThreadPoolExecutor: similar to Python’s own Future, Thread, and ThreadPoolExecutor, though only a minimal implementation is provided. These exist to unify behavior between Python 2 and 3 and provide a base class for the following.
uproot.source.futures.ResourceFuture, uproot.source.futures.ResourceWorker, and uproot.source.futures.ResourceThreadPoolExecutor: like the above except that a uproot.source.chunk.Resource is associated with every worker. When the threads are shut down, the resources (i.e. file handles) are released.
These classes implement a subset of Python’s Future and Executor interfaces.