From owner-freebsd-threads@FreeBSD.ORG Mon Jul 7 12:33:51 2003 Return-Path: Delivered-To: freebsd-threads@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 99BA937B401 for ; Mon, 7 Jul 2003 12:33:51 -0700 (PDT) Received: from mail.speakeasy.net (mail10.speakeasy.net [216.254.0.210]) by mx1.FreeBSD.org (Postfix) with ESMTP id 831C443F93 for ; Mon, 7 Jul 2003 12:33:50 -0700 (PDT) (envelope-from jhb@FreeBSD.org) Received: (qmail 5311 invoked from network); 7 Jul 2003 19:33:49 -0000 Received: from unknown (HELO server.baldwin.cx) ([216.27.160.63]) (envelope-sender )encrypted SMTP for ; 7 Jul 2003 19:33:49 -0000 Received: from laptop.baldwin.cx (gw1.twc.weather.com [216.133.140.1]) by server.baldwin.cx (8.12.9/8.12.9) with ESMTP id h67JXlGI093829; Mon, 7 Jul 2003 15:33:48 -0400 (EDT) (envelope-from jhb@FreeBSD.org) Message-ID: X-Mailer: XFMail 1.5.4 on FreeBSD X-Priority: 3 (Normal) Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 8bit MIME-Version: 1.0 In-Reply-To: Date: Mon, 07 Jul 2003 15:34:02 -0400 (EDT) From: John Baldwin To: deischen@freebsd.org cc: threads@freebsd.org Subject: Re: libc_r silliness X-BeenThere: freebsd-threads@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Threading on FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Jul 2003 19:33:51 -0000 On 07-Jul-2003 Daniel Eischen wrote: > On Mon, 7 Jul 2003, John Baldwin wrote: > >> Just wondering why the PTHREAD_{MIN,MAX}_PRIORITY macros referenced in >> the pthread_{get,set}schedparam() man pages are not available to >> applications but are hidden in pthread_private.h. It would seem that >> these values should be exported in pthread.h. > > Because they are not defined by the POSIX spec. According > to POSIX you should use: > > sched_get_priority_max(), sched_get_priority_min() > > but it is confusing because these are specified for the process > scheduling. The values returned by these system calls, do not > necessarily correspond to the values used by our thread libraries > (in fact, they don't). They do if you use SCHED_RR (which is the default policy) or SCHED_FIFO. SCHED_OTHER uses -20 to 20 (nice values). > I believe somewhere in the old spec, there were supposed to be > at least 31 or 32 priorities (I can't seem to find that mentioned > in the new spec). Our thread libraries, at least libc_r and > libpthread, use priorities 0 .. 31. > > I don't really know how to handle this. We can wrap > sched_get_priority_{min,max}(), but how do we know whether > the application wants process priorities or thread > priorities? Ugh. Perhaps the manpage should at least be updated to not reference the macros. What does POSIX say about the confusion between sched_get_priority_{min,max}? -- John Baldwin <>< http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve!" - http://www.FreeBSD.org/