MCPcopy Create free account
hub / github.com/RT-Thread/rt-thread / _thread_signal_mask

Function _thread_signal_mask

components/lwp/lwp_signal.c:401–423  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

399 };
400
401static void _thread_signal_mask(rt_thread_t thread, lwp_sig_mask_cmd_t how,
402 const lwp_sigset_t *sigset, lwp_sigset_t *oset)
403{
404 lwp_sigset_t new_set;
405
406 /**
407 * Note: POSIX wants this API to be capable to query the current mask
408 * by passing NULL in `sigset`
409 */
410 if (oset)
411 memcpy(oset, &thread->signal.sigset_mask, sizeof(lwp_sigset_t));
412
413 if (sigset)
414 {
415 _sig_mask_fn[how](thread, sigset, &new_set);
416
417 /* remove un-maskable signal from set */
418 _sigdelset(&new_set, SIGKILL);
419 _sigdelset(&new_set, SIGSTOP);
420
421 memcpy(&thread->signal.sigset_mask, &new_set, sizeof(lwp_sigset_t));
422 }
423}
424
425void lwp_sigqueue_clear(lwp_sigqueue_t sigq)
426{

Callers 3

_catch_signal_lockedFunction · 0.85
lwp_thread_signal_maskFunction · 0.85

Calls 1

_sigdelsetFunction · 0.85

Tested by

no test coverage detected