sigset_t set;
sigemptyset(&set);
sigaddset(&set, signum);
/* set our blocked mask to set */
spin_lock_irq(¤t->sigmask_lock);
current->blocked = set;
spin_unlock_irq(¤t->sigmask_lock);
Then when I want to start paying attention to a particular socket, I do
this (all variables have been initialized to sensible values):
if((err = sys_fcntl(fd, F_SETFL, O_RDWR|O_NONBLOCK|O_NDELAY)) < 0)
goto out;
if((err = sys_fcntl(fd, F_SETSIG, signum)) < 0)
goto out;
if((err = sys_fcntl(fd, F_SETOWN, current->pid)) < 0)
goto out;
As far as I can tell, it doesn't work. I've been reading the code, but it's
not helping. Big thanks in advance if anyone wants to lend a clue.
Wesley Felter - wesf@us.ibm.com
IBM Austin Research Lab
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/