On 02.07.2019 13:15, Jacek Caban wrote:
> 
> On 02/07/2019 12:12, Jacek Caban wrote:
>> On 02/07/2019 11:57, Liu Hao wrote:
>>
>>> 在 2019/7/2 下午5:19, Eric Botcazou 写道:
>>>>> It seems inappropriate to use handles as thread identifiers (as 
>>>>> handles
>>>>> imply resource ownership and are not unique identifiers); thread 
>>>>> IDs (as
>>>>> `DWORD` or `unsigned long`) would be a better alternative.
>>>> This was considered but ultimately rejected, as you can do nothing 
>>>> with a
>>>> thread Id, i.e. you need a handle for everything.  But the 
>>>> __gthread_equal
>>>> routine does compare the Ids and not the handles.
>>>>
>>> The `OpenThread()` function can obtain a handle by thread ID. It returns
>>> a real handle that has to be closed when it is out of use. Using the
>>> pseudo handle returned by `GetCurrentThread()` may be more efficient if
>>> the target thread ID is equal to `GetCurrentThreadId()`.
>>
>>
>> The problem with thread id is that it's not valid nor guaranteed to be 
>> identical after the thread is terminated. A handle needs to be used 
>> for that.
> 
> 
> I meant unique, not identical.
> 

According to linux.die.net[0], Linux kernel re-uses thread IDs. This
stackoverflow answer[1] claims that this applies to all POSIX threads
implementations, citing opengroup spec[2].

[0]: https://linux.die.net/man/7/pthreads
[1]:
https://stackoverflow.com/questions/1693180/how-do-i-determine-if-a-detached-pthread-is-alive
[2]:
https://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html#tag_15_09_02

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to