assert (ss->thread != MACH_PORT_NULL);
ss->actions[0].sa_handler = SIG_IGN;
}
+libc_hidden_def (_hurd_sigstate_set_global_rcv)
/* Check whether SS is a global receiver. */
static int
__spin_lock (&_hurd_global_sigstate->lock);
__spin_lock (&ss->lock);
}
+libc_hidden_def (_hurd_sigstate_lock)
+
void
_hurd_sigstate_unlock (struct hurd_sigstate *ss)
{
if (sigstate_is_global_rcv (ss))
__spin_unlock (&_hurd_global_sigstate->lock);
}
-libc_hidden_def (_hurd_sigstate_set_global_rcv)
+libc_hidden_def (_hurd_sigstate_unlock)
/* Retrieve a thread's full set of pending signals, including the global
ones if appropriate. SS must be locked. */
__sigorset (&pending, &pending, &_hurd_global_sigstate->pending);
return pending;
}
+libc_hidden_def (_hurd_sigstate_pending)
/* Clear a pending signal and return the associated detailed
signal information. SS must be locked, and must have signal SIGNO
__sigdelset (&ss->pending, signo);
return ss->pending_data[signo];
}
-libc_hidden_def (_hurd_sigstate_lock)
-libc_hidden_def (_hurd_sigstate_unlock)
/* Retrieve a thread's action vector. SS must be locked. */
struct sigaction *
else
return ss->actions;
}
-libc_hidden_def (_hurd_sigstate_pending)
\f
/* Signal delivery itself is on this page. */