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
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