On 5/30/07, Steven Rostedt <[EMAIL PROTECTED]> wrote:
> if (!(uval & FUTEX_OWNER_DIED)) { > pagefault_disable(); > uval = futex_atomic_cmpxchg_inatomic(uaddr, current->pid, 0); > pagefault_enable(); > } [...] This code is in futex_unlock_pi. Can the owner of the mutex really die? Isn't the owner the one doing the unlock?
This is part of the implementation of robust PI futexes. The semantics is that if the owner of a robust futex dies the futex is marked with FUTEX_OWNER_DIED. The next locking thread then has to clear that bit before calling pthread_mutex_unlock. If the bit is still set while unlocking the mutex is permanently marked unusable. I cannot say right now whether this is the semantics implemented above. I'll have to check the glibc test suite whether we check for that semantic. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/