libc_r silliness

Daniel Eischen eischen at vigrid.com
Mon Jul 7 12:02:34 PDT 2003


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).

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?

-- 
Dan Eischen



More information about the freebsd-threads mailing list