rem: t->sig_block_mask = stack[0];
add: atomic_set(&thread->sig_block_mask, stack[0]);
context: arch_restore_signal_frame(void){	struct thread *t = thread_get_current_thread();	struct iframe *frame = i386_get_current_iframe();	uint32 *stack;	struct vregs *regs;	TRACE(("### arch_restore_signal_frame: entry\n"));	stack = (uint32 *)frame->user_esp;	t->sig_block_mask = stack[0];	regs = (struct vregs *)stack[1];	frame->eip = regs->eip;	frame->flags = regs->eflags;	frame->eax = regs->eax;	frame->ecx = regs->ecx;	frame->edx = regs->edx;	frame->esp = regs->esp;	frame->user_esp = regs->_reserved_1;	frame->edi = regs->_reserved_2[0];	frame->esi = regs->_reserved_2[1];	frame->ebp = regs->_reserved_2[2];	i386_frstor((void *)(&regs->xregs));	TRACE(("### arch_restore_signal_frame: exit\n"));	frame->orig_eax = -1;	/* disable syscall checks */	return (int64)frame->eax | ((int64)frame->edx << 32);}