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

Function rms_rlock_fallback

freebsd/kern/kern_rmlock.c:1004–1018  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1002}
1003
1004static void __noinline
1005rms_rlock_fallback(struct rmslock *rms)
1006{
1007
1008 rms_int_influx_exit(rms, rms_int_pcpu(rms));
1009 critical_exit();
1010
1011 mtx_lock(&rms->mtx);
1012 while (rms->writers > 0)
1013 msleep(&rms->readers, &rms->mtx, PUSER - 1, mtx_name(&rms->mtx), 0);
1014 critical_enter();
1015 rms_int_readers_inc(rms, rms_int_pcpu(rms));
1016 mtx_unlock(&rms->mtx);
1017 critical_exit();
1018}
1019
1020void
1021rms_rlock(struct rmslock *rms)

Callers 1

rms_rlockFunction · 0.85

Calls 7

rms_int_influx_exitFunction · 0.85
rms_int_pcpuFunction · 0.85
rms_int_readers_incFunction · 0.85
mtx_lockFunction · 0.70
mtx_unlockFunction · 0.70
critical_exitFunction · 0.50
critical_enterFunction · 0.50

Tested by

no test coverage detected