Date: Thu, 21 Dec 2000 13:10:17 -0800 From: Julian Elischer <julian@elischer.org> To: John Baldwin <jhb@FreeBSD.org> Cc: archie@FreeBSD.ORG, smp@FreeBSD.ORG Subject: Re: looking for locking advice.. Message-ID: <3A4271B9.223CD683@elischer.org> References: <XFMail.001221104751.jhb@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
John Baldwin wrote: > > Julian, > > Just use reader/writer locks for now. They can use a lockmgr backend until a > more efficient reader/writer lock is implemented. As a side note, we should > probably work up a rw lock API and define some macros that just map to lockmgr > operations for now but can be optimized later. As for mutexes: you should be > using sleep mutexes, not spin mutexes, in which case interrupts aren't disabled > while the lock is held. Very, very, very, very few things should be using spin > mutexes. Note that when a mutex is released, if any threads are blocked on it, > then the thread with the highest priority is woken up so it can run. Also note > that interrupt threads have a higher priority than all other threads, so yes, > you can block in an interrupt thread. However, blocking an interrupt thread > is something that should still be somewhat minimized due to shared interrupts > since you will be blocking all interrupt handlers associated with a particular > interrupt source, thus don't go using tsleep() in an interrupt handler, for > example. :) well if I block, and I can't use sleep, what CAN I use? I need the previously running process/thread to continue running because it is holding the lock I want to obtain.. when it finishes and releases the lock I want to be called to continue.. > > -- > > John Baldwin <jhb@FreeBSD.org> -- http://www.FreeBSD.org/~jhb/ > PGP Key: http://www.baldwin.cx/~john/pgpkey.asc > "Power Users Use the Power to Serve!" - http://www.FreeBSD.org/ > > To Unsubscribe: send mail to majordomo@FreeBSD.org > with "unsubscribe freebsd-smp" in the body of the message -- __--_|\ Julian Elischer / \ julian@elischer.org ( OZ ) World tour 2000 ---> X_.---._/ presently in: Budapest v To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-smp" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3A4271B9.223CD683>