- Test for ability to receive signals
#include <sys/ddi.h> #include <sys/sunddi.h> boolean_t ddi_can_receive_sig(void);
Solaris DDI specific (Solaris DDI).
The ddi_can_receive_sig() function returns a boolean value indicating whether the current thread can receive signals sent by kill(2). If the return value is B_FALSE, then the calling thread cannot receive signals, and any call to qwait_sig(9F), cv_wait_sig(9F), or cv_timedwait_sig(9F) implicitly becomes qwait(9F), cv_wait(9F), or cv_timedwait(9F), respectively. Drivers that can block indefinitely awaiting an event should use this function to determine if additional means (such as timeout(9F)) may be necessary to avoid creating unkillable threads.
The calling thread is in a state in which signals cannot be received. For example, the thread is not associated with a user process or is in the midst of exit(2) handling.
The calling thread may receive a signal while blocked on a condition variable. Note that this function does not check to determine whether signals are blocked (see sigprocmask(2)).
The ddi_can_receive_sig() function may be called from user, kernel, or interrupt context.