Date: Tue, 15 May 2001 09:14:59 -0700 (PDT) From: John Baldwin <jhb@FreeBSD.org> To: Seigo Tanimura <tanimura@r.dl.itc.u-tokyo.ac.jp> Cc: current@FreeBSD.org Subject: RE: atomic operation of flags (was: RE: select(2) converted to u Message-ID: <XFMail.010515091459.jhb@FreeBSD.org> In-Reply-To: <200105150614.f4F6E0P53295@rina.r.dl.itc.u-tokyo.ac.jp>
next in thread | previous in thread | raw e-mail | index | archive | help
On 15-May-01 Seigo Tanimura wrote: > On Mon, 07 May 2001 12:37:22 -0700 (PDT), > John Baldwin <jhb@FreeBSD.org> said: > > John> You need the lock when clearing the bit in p_flag. That is why the > proc locks > John> are there, so all those proc locks need to stay. When you clear a bit, > you are > John> writing all the bits, so you need to ensure that you can atomically > John> read/modify/write all the bits in p_flag, hence the need for the proc > lock. > > As we now have a set of atomic operation functions in > machine/atomic.h, why do we not use them to read, modify and write > p_flag atomically? Is that more expensive than protecting by PROC_LOCK > and PROC_UNLOCK? That does not protect this operation: PROC_LOCK(p); if (p->p_flag & P_FOO) do_something_that_depends_on_FOO_being_set; PROC_UNLOCK(p); -- 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-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?XFMail.010515091459.jhb>