Question about libjava/childproc.c

Alan Bateman Alan.Bateman at oracle.com
Sun Sep 9 08:04:44 UTC 2018


On 09/09/2018 01:34, Martin Buchholz wrote:
> :
>
> See discussion in src/java.base/unix/native/libjava/ProcessImpl_md.c
>
>     Later Oracle introduced something very similar with the jspawnhelper.
>     But I see that jspawnhelper is not used at all for the vfork() case,
>     just for posix_spawn(), yes?
>
>
> Implemented by other folks.  I was mostly happy with vfork.  I forget 
> the motivation to introduce jspawnhelper, but I'm sure it's in the 
> fossil record somewhere!
jpsawnhelper is to deal with chdir and threading issues that arise when 
using posix_spawn. The move to posix_spawn was motivated by eager 
allocation of swap when using fork. It was originally done for Solaris, 
then macOS, and I see the AIX implementation is declared to use 
posix_spawn too. Linux is using vfork and seems to be stable. Martin 
will probably remember a brief foray into clone(CLONE_VM) at one point 
but that didn't work out.

-Alan


More information about the core-libs-dev mailing list