Re: [uClinux-dev] Threading and synchronization questions

2009-04-12 Thread Jamie Lokier
Mike Frysinger wrote: presumably the resolver is smart enough to not add a library to the list until it's completely ready. especially considering the ldso has no locking in it that i can see which means the problem would be there regardless of forking. any thread doing dlopen(RTLD_GLOBAL)

Re: [uClinux-dev] Threading and synchronization questions

2009-04-12 Thread Jamie Lokier
Mike Frysinger wrote: On Monday 06 April 2009 06:12:06 Mike Frysinger wrote: On Saturday 28 February 2009 14:16:30 Jamie Lokier wrote: Mike Frysinger wrote: (like daemonizing code) It is possible to daemonize on uClinux without exec'ing a new process, using clone() instead of

Re: [uClinux-dev] Threading and synchronization questions

2009-04-12 Thread Mike Frysinger
On Sunday 12 April 2009 17:48:44 Jamie Lokier wrote: Mike Frysinger wrote: presumably the resolver is smart enough to not add a library to the list until it's completely ready. especially considering the ldso has no locking in it that i can see which means the problem would be there

Re: [uClinux-dev] Threading and synchronization questions

2009-04-12 Thread Mike Frysinger
On Sunday 12 April 2009 17:57:34 Jamie Lokier wrote: Mike Frysinger wrote: On Monday 06 April 2009 06:12:06 Mike Frysinger wrote: On Saturday 28 February 2009 14:16:30 Jamie Lokier wrote: Mike Frysinger wrote: (like daemonizing code) It is possible to daemonize on uClinux

Re: [uClinux-dev] Threading and synchronization questions

2009-04-12 Thread Jamie Lokier
Mike Frysinger wrote: It's easy but you need an asm wrapper for each architecture, as the parent must not touch the stack before calling _exit. i'm aware of this which is why i used INTERNAL_SYSCALL() rather than calling the C library functions. those expand into the appropriate assembly

Re: [uClinux-dev] Threading and synchronization questions

2009-04-12 Thread Mike Frysinger
On Sunday 12 April 2009 19:30:33 Jamie Lokier wrote: Mike Frysinger wrote: It's easy but you need an asm wrapper for each architecture, as the parent must not touch the stack before calling _exit. i'm aware of this which is why i used INTERNAL_SYSCALL() rather than calling the C