Re:What's up, Python? The GIL removed, a new compiler, optpa...
by empthought on Monday July 31, 2023 @12:30AM
(#36938830)
Your trouble seems to involve not understanding how to set up signal handlers, which ProcessPoolExecutor handles for you and exposes via a BrokenProcessPool exception.
Re:What's up, Python? The GIL removed, a new compiler, optpa...
by wiseowise on Monday July 31, 2023 @03:01AM
(#36939571)
> Derived from BrokenExecutor (formerly RuntimeError), this exception class is raised when one of the workers of a ProcessPoolExecutor has terminated in a non-clean fashion (for example, if it was killed from the outside).
What if it hangs?
Re:What's up, Python? The GIL removed, a new compiler, optpa...
by empthought on Monday July 31, 2023 @06:08AM
(#36940577)
That isn’t the scenario originally described, but there is a timeout parameter in future.result().
It provides a nice interface but is using multiprocessing or multi threading under the hood depending on which executioner you use:
> The ProcessPoolExecutor class is an Executor subclass that uses a pool of processes to execute calls asynchronously. ProcessPoolExecutor uses the multiprocessing module, which allows it to side-step the Global Interpreter Lock but also means that only picklable objects can be executed and returned.