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