From owner-freebsd-current Thu Jul 26 3:59:39 2001 Delivered-To: freebsd-current@freebsd.org Received: from salmon.maths.tcd.ie (salmon.maths.tcd.ie [134.226.81.11]) by hub.freebsd.org (Postfix) with SMTP id A52E137B406; Thu, 26 Jul 2001 03:59:32 -0700 (PDT) (envelope-from dwmalone@maths.tcd.ie) Received: from walton.maths.tcd.ie by salmon.maths.tcd.ie with SMTP id ; 26 Jul 2001 11:59:31 +0100 (BST) Date: Thu, 26 Jul 2001 11:59:31 +0100 From: David Malone To: Maxim Sobolev Cc: current@FreeBSD.org, Julian Elischer , stable@FreeBSD.org Subject: Re: Strange select(2) misbehaviour when linked with -pthread Message-ID: <20010726115931.A93134@walton.maths.tcd.ie> References: <3B5EA985.458B39B7@FreeBSD.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i In-Reply-To: <3B5EA985.458B39B7@FreeBSD.org>; from sobomax@FreeBSD.org on Wed, Jul 25, 2001 at 02:12:06PM +0300 Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG On Wed, Jul 25, 2001 at 02:12:06PM +0300, Maxim Sobolev wrote: > I found that the attached small program behaves very strangely when > linked with -pthread - it chews 100% CPU cycles while waiting in > select(2). This misbehaviour observed both on 5-CURRENT and 4-STABLE > systems. *weird* The timeout is too long. At the moment there is an arbitary limit on how long you can wait 'cos the kernel incorrectly uses itimerfix on the timeout passed to select. I have patches to improve the situation and I was waiting for Bruce to review them, but I've been using them at home for ages, so maybe I should just commit them. The patches only have select return an error if the timeout is too long to be implimented using the kernel's counters. > P.S. And yes, I know that I ought to use NULL instead of &tv when I > want to wait indefinitely in select(2), but it is how some programs > work. Or don't work as the case may be ;-) Posix doesn't actually require select to be able to deal with large wait times (I think 31 days was the figure I found in the SUSv2 spec). Have a look at: http://www.FreeBSD.org/cgi/query-pr.cgi?pr=18909 for more details. David. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message