2013/2/25 Pavel Emelyanov [off-list ref]:
quoted
+ for (i = 0; i < arg.nr; i++) {
+ off = arg.off + i;
+
+ spin_lock_irq(&child->sighand->siglock);
+ list_for_each_entry(q, &pending->list, list) {
+ if (!off--) {
+ copy_siginfo(&info, &q->info);
+ break;
+ }
+ }
+ spin_unlock_irq(&child->sighand->siglock);
What's the point of arg.nr if you for every single siginfo drop the lock
and perform linear search anyway?
arg.nr may be useful, if we will decide to optimize this part in a
future. Currently the problem with complexity of finding a signal in a
queue is true not only for this code. It exists for delivering
real-time signals as well. Probably in a future this problem will be
fixed for both cases by the same way.
Thanks,
Andrew