Re: [patch] turning devctl into a "multiple openable" device

看板FB_current作者時間14年前 (2011/12/02 07:32), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串11/12 (看更多)
--FL5UXtIhxfXey3p5 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Wed, Nov 30, 2011 at 05:20:17PM +0100, Olivier Houchard wrote: > On Wed, Nov 30, 2011 at 06:04:50PM +0200, Kostik Belousov wrote: > > > > I wonder why the waiting_threads stuff is needed at all. The cv cou= ld > > > > be woken up unconditionally everytime. What is the reason for the c= v_wait > > > > call in cdevpriv data destructor ? You cannot have a thread doing e= =2Eg. > > > > read on the file descriptor while destructor is run. > > > >=20 > > >=20 > > > What will prevent you from having a thread stuck in read(), while an = another=20 > > > one close() the fd ? > > >=20 > > Nothing, but file reference count goes to zero only after the thread > > stuck in read is unstuck. Cdevpriv destructor is run only when file > > reference count becomes zero, i.e. there can be no any accessing thread= s, > > and new accesses are impossible since file descriptors also own referen= ces > > on the file. >=20 > Right, I was a bit confused, this part can be removed. >=20 > Regards, >=20 > Olivier Here is a new version of the patch mostly reworked by Olivier, It doesn't duplicate anymore the devq, and fix all that have been spotted here previously. http://people.freebsd.org/~bapt/devctl_multi_open.diff bonus, it removes the needless giant lock regards, Bapt --FL5UXtIhxfXey3p5 Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.18 (FreeBSD) iEYEARECAAYFAk7YCwEACgkQ8kTtMUmk6ExLuACgttivMDuC+ZsXNQ2Kd4kPAPhm wiUAn1uXcrEk2gIZCW2ZH98/LUFexh2l =wL+Q -----END PGP SIGNATURE----- --FL5UXtIhxfXey3p5--
文章代碼(AID): #1Es0vopG (FB_current)
討論串 (同標題文章)
完整討論串 (本文為第 11 之 12 篇):
文章代碼(AID): #1Es0vopG (FB_current)