Jung-uk Kim wrote:
I'm also sorry, but that is what I see:
typedef __int32_t       __lwpid_t;      /* Thread ID (a.k.a. LWP)
*/ ...
td->td_tid = alloc_unr(tid_unrhdr);
...
tid_unrhdr = new_unrhdr(PID_MAX + 2, INT_MAX, &tid_lock);

So what have I missed, where is the problem? Why td_tid is not
unique and where is the size problem?

On top of that:

    /* Returning 0 is not allowed. */
    return (curthread->td_tid + 1);

may actually return 0 because it can be INT_MAX. :-)

No, maximum is positive overflow. :) Actually "+ 1" is probably not needed here as system assigns thread IDs are above process IDs and ID 0 is already busy. :)

PS: More arguments sent privately.

--
Alexander Motin
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to