Messages in this thread | | | Subject | Re: Question about clearing of tsk->robust_list in clone | From | Peter Zijlstra <> | Date | Tue, 15 Feb 2011 15:00:50 +0100 |
| |
On Tue, 2011-02-15 at 14:16 +0100, Thomas Gleixner wrote: > > And I do not buy the argument about "complex glibc code" at all. glibc > already handles it for pthread_create() so why the hell can't it > handle it for fork() ?
Going by comment #9 they think calling sys_set_robust_list() on every fork() is too expensive for them, but realistically we cannot do anything about it, ->robust_list is strictly task state.
I also think their suggestion in comment #11 (lazy state) is flawed, what if the parent never users robust futexes, in that case the state will indicate not to initialize the robust state for its children, again leading to the observed wreckage.
Realistically libpthread should register an on_fork() callback to ensure the state is properly propagated.
| |