Stephen Bovy created HDFS-10257:
-----------------------------------
Summary: Quick Thread Local Storage set-up has a small flaw
Key: HDFS-10257
URL: https://issues.apache.org/jira/browse/HDFS-10257
Project: Hadoop HDFS
Issue Type: Bug
Components: libhdfs
Affects Versions: 2.6.4
Environment: Linux
Reporter: Stephen Bovy
Priority: Minor
In jni_helper.c in the getJNIEnv function
The “THREAD_LOCAL_STORAGE_SET_QUICK(env);” Macro is in the wrong
location;
It should precede the “threadLocalStorageSet(env)” as follows ::
THREAD_LOCAL_STORAGE_SET_QUICK(env);
if (threadLocalStorageSet(env)) {
return NULL;
}
AND IN “thread_local_storage.h” the macro:
“THREAD_LOCAL_STORAGE_SET_QUICK”
should be as follows ::
#ifdef HAVE_BETTER_TLS
#define THREAD_LOCAL_STORAGE_GET_QUICK() \
static __thread JNIEnv *quickTlsEnv = NULL; \
{ \
if (quickTlsEnv) { \
return quickTlsEnv; \
} \
}
#define THREAD_LOCAL_STORAGE_SET_QUICK(env) \
{ \
quickTlsEnv = (env); \
return env;
}
#else
#define THREAD_LOCAL_STORAGE_GET_QUICK()
#define THREAD_LOCAL_STORAGE_SET_QUICK(env)
#endif
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)