svn commit: r184558 - head/sys/dev/acpica/Osd

Alexander Motin mav at FreeBSD.org
Mon Nov 3 09:36:45 PST 2008


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


More information about the svn-src-all mailing list