On 29/04/17 14:51, Emil Velikov wrote:
From: Emil Velikov <[email protected]>

Drop the misleading "will not match the one returned by thread_create"
hunk and provide more clarity as to what/why GetCurrentThread() isn't
the solution we're looking for.

Cc: José Fonseca <[email protected]>
Signed-off-by: Emil Velikov <[email protected]>
---
 include/c11/threads_win32.h | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/include/c11/threads_win32.h b/include/c11/threads_win32.h
index d017c31c34e..7ffd3ae3a23 100644
--- a/include/c11/threads_win32.h
+++ b/include/c11/threads_win32.h
@@ -502,9 +502,13 @@ thrd_current(void)
     HANDLE hCurrentThread;
     BOOL bRet;

-    /* GetCurrentThread() returns a pseudo-handle, which is useless.  We need
-     * to call DuplicateHandle to get a real handle.  However the handle value
-     * will not match the one returned by thread_create.
+    /* GetCurrentThread() returns a pseudo-handle, which we need
+     * to pass to DuplicateHandle. Only the resulting handle can be used
+     * from other threads.
+     *
+     * Note that neither handle can be compared to the one by thread_create.
+     * Only the thread IDs - as returned by GetThreadId and GetCurrentThreadId
+     * can be compared directly.
      *
      * Other potential solutions would be:
      * - define thrd_t as a thread Ids, but this would mean we'd need to 
OpenThread for many operations


Reviewed-by: Jose Fonseca <[email protected]>

_______________________________________________
mesa-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to