Apparently thread IDs are reclaimed immediately on POSIXen. On Windows
thread IDs are essentially unique leading to huge amounts of
MXUser (lock) tracking memory being wasted.
The fix is simple - use VThread_CurID. This is our bounded, quickly
recycled thread ID service.
Signed-off-by: Marcelo Vanzin <mvanzin@vmware.com>
{
/* All thread types must fit into a uintptr_t */
+ ASSERT_ON_COMPILE(sizeof(VThreadID) <= sizeof (void *));
+ return (void *) (uintptr_t) VThread_CurID();
+
+/*
#if defined(_WIN32)
- ASSERT_ON_COMPILE(sizeof(DWORD) <= sizeof (void *));
- return (void *) (uintptr_t) GetCurrentThreadId();
+ ASSERT_ON_COMPILE(sizeof(VThreadID) <= sizeof (void *));
+ return (void *) (uintptr_t) VThread_CurID();
#else
ASSERT_ON_COMPILE(sizeof(pthread_t) <= sizeof (void *));
return (void *) (uintptr_t) pthread_self();
#endif
+*/
}