On 1/13/06, Kamal R. Prasad <[EMAIL PROTECTED]> wrote: > > Priority need not be propagated to readers as they will not block other > readers. > Most likely, you only need to propagate to the writer to avoid priority > inversron. > > regards > -kamal > > > On 1/13/06, prime <[EMAIL PROTECTED]> wrote: > > > Hi hackers, > > I have a question about how priority propagation works on > > read/write lock.On locks that have only one owner at a determinate > > moment,we can simply propagate the priority to the owner of lock,but > > read/write lock may have many owners at some time,so how can we know > > who are the owners? > > I browse the OpenSolaris' read/write lock implementation,and find > > that, it simply treats the owner of the lock as NULL when readers own > > the read/write lock.In this way,we can not propagate our priority to > > all threads that block us. > > > > Thanks very much. > > -- > > Three passions, simple but overwhelmingly strong, have governed my life: > > > > the longing for love, the search for knowledge, and unbearable pity for > > the suffering of mankind. > > ---------Bertrand Russell > > _______________________________________________ > > freebsd-hackers@freebsd.org mailing list > > http://lists.freebsd.org/mailman/listinfo/freebsd-hackers > > To unsubscribe, send any mail to "[EMAIL PROTECTED] > > " > > > > Thanks your reply. But readers may block writers, aren't they? For example, there are three threads,A,B and C, and a read/write lock rwlock1 ,and a mutex mtx1. 1.A lock mtx1, 2.B get the read lock of rwlock1 and then want to get mtx1,but mtx1 is locked by A,so B has to wait on mtx1. 3.C want to get the write lock of rwlock1 and it has to wait,because rwlock1 is read locked by B. Now if C's priority < A's priority(in numerical), then we get priority inversion.
How can avoid this priority inversion? Thanks. -- Three passions, simple but overwhelmingly strong, have governed my life: the longing for love, the search for knowledge, and unbearable pity for the suffering of mankind. ---------Bertrand Russell _______________________________________________ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "[EMAIL PROTECTED]"