cvs commit: src/sys/kern kern_timeout.c src/sys/sys callout.h
attilio at FreeBSD.org
Mon Nov 19 16:37:46 PST 2007
attilio 2007-11-20 00:37:45 UTC
FreeBSD src repository
Add the function callout_init_rw() to callout facility in order to use
rwlocks in conjuction with callouts. The function does basically what
callout_init_mtx() alredy does with the difference of using a rwlock
as extra argument.
CALLOUT_SHAREDLOCK flag can be used, now, in order to acquire the lock only
in read mode when running the callout handler. It has no effects when used
in conjuction with mtx.
In order to implement this, underlying callout functions have been made
completely lock type-unaware, so accordingly with this, sysctl
debug.to_avg_mtxcalls is now changed in the generic
Note: currently the allowed lock classes are mutexes and rwlocks because
callout handlers run in softclock swi, so they cannot sleep and they
cannot acquire sleepable locks like sx or lockmgr.
Requested by: kmacy, pjd, rwatson
Reviewed by: jhb
Revision Changes Path
1.107 +57 -52 src/sys/kern/kern_timeout.c
1.32 +10 -3 src/sys/sys/callout.h
More information about the cvs-all