Question about rtld-elf. Anyone?.. Anyone?

Daniel Eischen eischen at pcnet1.pcnet.com
Tue Apr 29 12:42:31 PDT 2003


On Tue, 29 Apr 2003, Daniel Eischen wrote:

> On Tue, 29 Apr 2003, Narvi wrote:
> > 
> > No, you would see the problem as soon as you tried to use a function that
> > used a locked structure, depending on how the dynamic linker did thinks
> > this might include any fiunction, including exec* - threads + forking
> > gives you really fascinating problems. How do you know that say malloc
> > state was consistent at the moment you forked? You really need
> > per-subsystem cleanups so that you won't occasionaly fail miserably. Its
> > not really the threads lib that can / should track locks, unless it comes
> > with its own copy of the subsystems.

In regards to inconsistent data (and not the state of the locks)...

You could have use an atfork() handler to reinitialize any
inconsistent data.  POSIX already defines pthread_atfork(),
and the kernel has at_fork(9) for kernel modules.  Perhaps
pthread_atfork() could be utilized by libc, being careful
to detect the potential for threads first.

-- 
Dan Eischen



More information about the freebsd-threads mailing list