rem: t = thread_get_current_thread();
add: thread = thread_get_current_thread();
context: sigaction(int sig, const struct sigaction *act, struct sigaction *oact){	struct thread *t;	int state;	if (sig < 1 || sig > MAX_SIGNO		|| sig == SIGKILL || sig == SIGKILLTHR || sig == SIGSTOP)		return EINVAL;	state = disable_interrupts();	GRAB_THREAD_LOCK();	t = thread_get_current_thread();	if (oact)		memcpy(oact, &t->sig_action[sig - 1], sizeof(struct sigaction));	if (act)		memcpy(&t->sig_action[sig - 1], act, sizeof(struct sigaction));	if (act && act->sa_handler == SIG_IGN)		t->sig_pending &= ~(1L << (sig - 1));	else if (act && act->sa_handler == SIG_DFL) {		if ((sig == SIGCONT) || (sig == SIGCHLD) || (sig == SIGWINCH))			t->sig_pending &= ~(1L << (sig - 1));	} /*else		dprintf("### custom signal handler set\n");*/	RELEASE_THREAD_LOCK();	restore_interrupts(state);	return 0;}