On Sun, May 20, 2007 at 12:40:11AM -0300, Davi Arnaut wrote:
> Hi,
>
> Shrink task_struct by replacing the notifier callback with a
> notifier list. The block_all_signals() function (and the signal
> notifier mechanism) has only one user at the moment, which is drm.
This looks like a nice improvement. Some comments below:
> - int (*notifier)(void *priv);
> - void *notifier_data;
> - sigset_t *notifier_mask;
> -
> + /* signal notifier list */
> + struct list_head notifier_list;
> +
This filed should have a more descripvtive name, e.g. singal_notifier_list.
Also it's probably fine to use a hlist to save another pointer in
struct task_struct.
> + struct signal_notifier *tmp, *notifier;
> int sig = next_signal(pending, mask);
>
> - if (sig) {
> - if (current->notifier) {
> - if (sigismember(current->notifier_mask, sig)) {
> - if (!(current->notifier)(current->notifier_data)) {
> - clear_thread_flag(TIF_SIGPENDING);
> - return 0;
> - }
> + if (unlikely(!sig))
> + return 0;
> +
> + list_for_each_entry_safe(notifier, tmp, ¤t->notifier_list, list) {
> + if (sigismember(¬ifier->mask, sig)) {
> + if (!(notifier->func)(notifier->data)) {
Normal kernel stile would be
if (!notifier->func(notifier->data)) {
The function to add/remove the notifier should grow kerneldoc comments
while you're at it, and maybe more descriptive names.
Also the patch does an actual functional change because it allows for
multiple clients to register the notification, which is probably useful.
-
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/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]