[Mingw-w64-public] Fwd: [patch] Reimplement GNU threads library on native Windows

Jacek Caban jacek@codeweavers.com
Tue Jul 2 10:15:00 GMT 2019


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.


Jacek



More information about the Gcc-patches mailing list