This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH v2 3/3] posix: New Linux posix_spawn{p} implementation


On Tue, 2016-02-02 at 11:31 -0200, Adhemerval Zanella wrote:
> 
> 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.

Whatever you agree on eventually, it sounds as if this should be
documented as part of the concurrency notes for this function.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]