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

Function syscall_thread_drain

freebsd/kern/kern_syscalls.c:66–80  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

64}
65
66static void
67syscall_thread_drain(struct sysent *se)
68{
69 u_int32_t cnt, oldcnt;
70
71 do {
72 oldcnt = se->sy_thrcnt;
73 KASSERT((oldcnt & SY_THR_STATIC) == 0,
74 ("drain on static syscall"));
75 cnt = oldcnt | SY_THR_DRAINING;
76 } while (atomic_cmpset_acq_32(&se->sy_thrcnt, oldcnt, cnt) == 0);
77 while (atomic_cmpset_32(&se->sy_thrcnt, SY_THR_DRAINING,
78 SY_THR_ABSENT) == 0)
79 pause("scdrn", hz/2);
80}
81
82int
83syscall_thread_enter(struct thread *td, struct sysent *se)

Callers 1

kern_syscall_deregisterFunction · 0.85

Calls 2

atomic_cmpset_acq_32Function · 0.85
atomic_cmpset_32Function · 0.50

Tested by

no test coverage detected