|
About ::
TODO ::
Blog ::
RSS ::
Old blog ::
Projects ::
GIT ::
Gallery ::
Notes
Wed, 07 Mar 2007
Eventfs.
int do_sigaction(int sig, struct k_sigaction *act, struct k_sigaction *oact)
{
struct k_sigaction *k;
sigset_t mask;
if (!valid_signal(sig) || sig < 1 || (act && sig_kernel_only(sig)))
return -EINVAL;
k = ¤t->sighand->action[sig-1];
spin_lock_irq(¤t->sighand->siglock);
...
*k = *act;
...
spin_lock_irq(¤t->sighand->siglock);
return 0;
}
If signal() or sigaction() is called from signal handler just before
spin_lock_irq(), it will not take any effect, since the same action will be overwritten
in a process after handler is completed. Man page says that both signal() and sigaction()
are signal safe functions.
/devel/eventfs :: Link / Comments (0) Please solve this captcha to be allowed to post (need to reload in a minute): 91 * 73 Comments are closed for this story. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||