diff --git a/src/system/libroot/posix/pthread/pthread_key.cpp b/src/system/libroot/posix/pthread/pthread_key.cpp index 431a4d4481..be251f71f1 100644 --- a/src/system/libroot/posix/pthread/pthread_key.cpp +++ b/src/system/libroot/posix/pthread/pthread_key.cpp @@ -35,7 +35,7 @@ get_key_destructor(uint32 key, int32& sequence) /*! Function to get the thread specific value of a key in a lockless - way. + way. The thread specific value is reset to NULL. \a sequence must be the sequence of the key table that this value has to fit to. */ @@ -54,6 +54,8 @@ get_key_value(pthread_thread* thread, uint32 key, int32 sequence) value = keyData.value; } while (specificSequence != sequence); + keyData.value = NULL; + return value; }