Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 08 May 2001 19:26:42 +0900
From:      Seigo Tanimura <tanimura@r.dl.itc.u-tokyo.ac.jp>
To:        jhb@FreeBSD.org
Cc:        tanimura@r.dl.itc.u-tokyo.ac.jp, current@FreeBSD.org
Subject:   RE: select(2) converted to use a condition variable, and optimis
Message-ID:  <200105081026.f48AQgP75260@rina.r.dl.itc.u-tokyo.ac.jp>
In-Reply-To: In your message of "Mon, 07 May 2001 12:37:22 -0700 (PDT)" <XFMail.010507123722.jhb@FreeBSD.org>
References:  <200105060731.f467V4g13184@silver.carrots.uucp.r.dl.itc.u-tokyo.ac.jp> <XFMail.010507123722.jhb@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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.

John> Please back out the changes to not lock the process around the p_flag change. 
John> The rest of the patch looks ok, though I'd like to review the updated version
John> before it is committed.  Thanks.

Process locks are now back.

Here is another issue. PROC_LOCK may block to acquire a process lock,
during which an event of interest may occur or the remaining time of
select(2)/poll(2) may run out. Thus if the remaining time runs out
during locking a process, we should first rescan file descriptors to
avoid missing an event, followed by returning the result.

Those changes are now in the updated patch at:

>> http://people.FreeBSD.org/~tanimura/patches/selectopt.diff

-- 
Seigo Tanimura <tanimura@r.dl.itc.u-tokyo.ac.jp> <tanimura@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?200105081026.f48AQgP75260>