-
-
Notifications
You must be signed in to change notification settings - Fork 655
Description
For Cygwin versions less than 3.0.0 (and only Cygwin) this replaces the use of multiprocessing.Pool
in the sage_setup.docbuild.build_many
function, with a naïve but "good enough" (it works in general) parallel process pool that does not rely on starting processes from threads.
This is needed for #27214, because the specific combination of using MAP_NORESERVE
mmap
s and forking processes from a thread can result in a bug in Cygwin (fixed in 3.0.0) which causes unhandled segfaults to occur in any code that is run during the docbuild which uses libgap.
So this is really only needed so that the docs can continue to be built on systems (including my primary development environment, as well as the buildbot) that do not yet have Cygwin >= 3.0.0 once #27214 is applied.
CC: @jdemeyer
Component: porting: Cygwin
Author: Erik Bray
Branch: fe0e3ea
Reviewer: Jeroen Demeyer
Issue created by migration from https://trac.sagemath.org/ticket/27490