MCPcopy Create free account
hub / github.com/F-Stack/f-stack / sigqueue_take

Function sigqueue_take

freebsd/kern/kern_sig.c:351–375  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

349}
350
351void
352sigqueue_take(ksiginfo_t *ksi)
353{
354 struct ksiginfo *kp;
355 struct proc *p;
356 sigqueue_t *sq;
357
358 if (ksi == NULL || (sq = ksi->ksi_sigq) == NULL)
359 return;
360
361 p = sq->sq_proc;
362 TAILQ_REMOVE(&sq->sq_list, ksi, ksi_link);
363 ksi->ksi_sigq = NULL;
364 if (!(ksi->ksi_flags & KSI_EXT) && p != NULL)
365 p->p_pendingcnt--;
366
367 for (kp = TAILQ_FIRST(&sq->sq_list); kp != NULL;
368 kp = TAILQ_NEXT(kp, ksi_link)) {
369 if (kp->ksi_signo == ksi->ksi_signo)
370 break;
371 }
372 if (kp == NULL && !SIGISMEMBER(sq->sq_kill, ksi->ksi_signo) &&
373 !SIGISMEMBER(sq->sq_ptrace, ksi->ksi_signo))
374 SIGDELSET(sq->sq_signals, ksi->ksi_signo);
375}
376
377static int
378sigqueue_add(sigqueue_t *sq, int signo, ksiginfo_t *si)

Callers 11

notifier_removeFunction · 0.85
kern_kmq_notifyFunction · 0.85
tdsendsignalFunction · 0.85
kern_ktimer_deleteFunction · 0.85
kern_ptraceFunction · 0.85
proc_reapFunction · 0.85
report_alive_procFunction · 0.85
proc_reparentFunction · 0.85
aio_free_entryFunction · 0.85
aio_proc_rundownFunction · 0.85
kern_lio_listioFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected