On Wed, 23 Feb 2011, Alexander Best wrote:

On Wed Feb 23 11, Kostik Belousov wrote:
On Wed, Feb 23, 2011 at 12:56:25PM +0000, John Baldwin wrote:
...
Log:
  Fix off-by-one error in check against max_threads_per_proc.

  Submitted by: arundel
  MFC after:    1 week

Modified:
  head/sys/kern/kern_thr.c

Modified: head/sys/kern/kern_thr.c
==============================================================================
--- head/sys/kern/kern_thr.c    Wed Feb 23 10:28:37 2011        (r218966)
+++ head/sys/kern/kern_thr.c    Wed Feb 23 12:56:25 2011        (r218967)
@@ -153,7 +153,7 @@ create_thread(struct thread *td, mcontex
        p = td->td_proc;

        /* Have race condition but it is cheap. */
-       if (p->p_numthreads >= max_threads_per_proc) {
+       if (p->p_numthreads > max_threads_per_proc) {
                ++max_threads_hits;
                return (EPROCLIM);
        }

I do not think there was off by one error. The create_thread() function
is called to create new thread, and before the process thread counter
is incremented in thread_link(). The old test tried to not allow more
then max_threads_per_proc threads in a process, now it allows to
create max_threads_per_proc.

Actually, now it allows to create 1 more than max_threads_per_proc threads
in a process.

doesn't the semantics of the term "maximum" imply that it's own value is also
valid?

Yes.  Not 1 more.

if a sign says maximum weight 2000kg, does that mean that a weight of 2000kg is
invalid and the highest valid weight is 1999,999..kg?

No.  This means that if weights are always in units of kg, and are represented
by indexes starting at index 0, then the highest valid index is 1999.  But
if the index is a count of the number of kg's, then the highest valud index
is 2000.

p->p_numthreads presumably matches its name, so it is a count of a number
of threads and not a thread number.

Bruce
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to