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

Function LK_CAN_SHARE

freebsd/kern/kern_lock.c:114–127  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

112} while (0)
113
114static bool __always_inline
115LK_CAN_SHARE(uintptr_t x, int flags, bool fp)
116{
117
118 if ((x & (LK_SHARE | LK_EXCLUSIVE_WAITERS | LK_EXCLUSIVE_SPINNERS)) ==
119 LK_SHARE)
120 return (true);
121 if (fp || (!(x & LK_SHARE)))
122 return (false);
123 if ((curthread->td_lk_slocks != 0 && !(flags & LK_NODDLKTREAT)) ||
124 (curthread->td_pflags & TDP_DEADLKTREAT))
125 return (true);
126 return (false);
127}
128
129#define LK_TRYOP(x) \
130 ((x) & LK_NOWAIT)

Callers 3

lockmgr_slock_tryFunction · 0.85
lockmgr_slock_adaptiveFunction · 0.85
lockmgr_slock_hardFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected