Author izbyshev
Recipients gregory.p.smith, izbyshev, koobs, nanjekyejoannah, pablogsal, pitrou, serhiy.storchaka, vstinner
Date 2019-01-14.22:43:02
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1547505782.91.0.0125526138831.issue35537@roundup.psfhosted.org>
In-reply-to
Content
> Until muscl decides to provide an "#ifdef __MUSL__"-like or any way that it's musl, I propose to not support musl: don't use os.posix_spawn() but _posixsubprocess.

FYI, I'm researching how to use vfork(), focusing on Linux, but I'll need more time to study the current state of affairs of libcs. Both musl and glibc don't use "pure" vfork() now because of perceived danger of miscompilation due to sharing of the stack between the parent and the child. They switched to clone(CLONE_VM|CLONE_VFORK), which is basically the same but allows the caller to provide a separate stack for the child. There are also additional subtle issues related to signal handling (and pthread cancellation in particular) which I need to study.
 
If I find vfork()-like approach feasible, I'll open a separate issue. The bonus of this approach is that it doesn't depend on a particular libc, so both glibc (including older versions) and musl could be supported.
History
Date User Action Args
2019-01-14 22:43:04izbyshevsetrecipients: + izbyshev, gregory.p.smith, pitrou, vstinner, serhiy.storchaka, koobs, pablogsal, nanjekyejoannah
2019-01-14 22:43:02izbyshevsetmessageid: <1547505782.91.0.0125526138831.issue35537@roundup.psfhosted.org>
2019-01-14 22:43:02izbyshevlinkissue35537 messages
2019-01-14 22:43:02izbyshevcreate