signal_send(pid_t pid, int signum)
{
if (signum < 0 || signum >= _SIG_NUM) {
- __current->k_status = LXINVL;
+ __current->k_status = EINVAL;
return -1;
}
} else {
// TODO: send to all process.
// But I don't want to support it yet.
- __current->k_status = LXINVL;
+ __current->k_status = EINVAL;
return -1;
}
send_single:
if (PROC_TERMINATED(proc->state)) {
- __current->k_status = LXINVL;
+ __current->k_status = EINVAL;
return -1;
}
__SIGSET(proc->sig_pending, signum);
{
__current->flags |= PROC_FINPAUSE;
- __SYSCALL_INTERRUPTIBLE({
- while ((__current->flags & PROC_FINPAUSE)) {
- sched_yield();
- }
- })
+ while ((__current->flags & PROC_FINPAUSE)) {
+ sched_yieldk();
+ }
+
__current->k_status = EINTR;
}