> If you're right that atomic_{clear,set}bits_int is correct and
> sufficient and actually faster, then all dynamic executables would
> benefit from this speedup (sigprocmask is used in ld.so(1)).

Since on i386 GENERIC these atomic_* things don't emit the LOCK prefix,
performance shouldn't be an issue; I'm actually more worried about this bit:

> > -           p->p_sigmask = mask &~ sigcantmask;
> > +           p->p_sigmask = mask;

On the right architecture where a word store isn't atomic enough and
with the right compiler that decides to put p_sigmask on an address
ending with 0xFFF with 4k-sized pages, we have two problems already.

I'm only asking if such a situation can happen, or if there is some
ensure_this_assignment_is_always_atomic(&p->p_sigmask, mask); function
that I missed.
--
Martin Pelikan

Reply via email to