This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH v2 3/3] posix: New Linux posix_spawn{p} implementation
- From: Adhemerval Zanella <adhemerval dot zanella at linaro dot org>
- To: Florian Weimer <fweimer at redhat dot com>
- Cc: libc-alpha at sourceware dot org
- Date: Tue, 2 Feb 2016 11:31:39 -0200
- Subject: Re: [PATCH v2 3/3] posix: New Linux posix_spawn{p} implementation
- Authentication-results: sourceware.org; auth=none
- References: <1454343665-1706-1-git-send-email-adhemerval dot zanella at linaro dot org> <1454343665-1706-4-git-send-email-adhemerval dot zanella at linaro dot org> <56B0A9B7 dot 6000507 at redhat dot com>
On 02-02-2016 11:05, Florian Weimer wrote:
> On 02/01/2016 05:21 PM, Adhemerval Zanella wrote:
>
>> + new_pid = CLONE (__spawni_child, STACK (stack, stack_size),
>> + CLONE_VM | CLONE_VFORK | SIGCHLD, &args);
>
> Does this set up new per-thread variables? Otherwise, errno in the
> parent and child will be same and the code still has races.
>
> Florian
>
Could you elaborate? In my understanding there is no requirement of
using CLONE_SETTLS to avoid races: CLONE_VFORK will suspend the
calling process and even with child using the same TLS namespace as
the parent there will be no concurrent access between them.