In os::allocate_thread_local_storage (file os_bsd.cpp) we cast pthread_key_t down from "unsigned long" into "int".
We should use either "unsigned long" or at the least add a check to make sure that the value of pthread_key_t <= MAX(int)
Notice: pthread_key_t on Linux (os_linux.cpp) is (unsigned int), so this is only an issue on BSD.
We should use either "unsigned long" or at the least add a check to make sure that the value of pthread_key_t <= MAX(int)
Notice: pthread_key_t on Linux (os_linux.cpp) is (unsigned int), so this is only an issue on BSD.
- relates to
-
JDK-8132510 Replace ThreadLocalStorage with compiler/language-based thread-local variables
- Resolved