hadoop-hdfs-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Colin Patrick McCabe (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (HDFS-10257) Quick Thread Local Storage set-up has a small flaw
Date Fri, 08 Apr 2016 20:59:25 GMT

    [ https://issues.apache.org/jira/browse/HDFS-10257?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15232916#comment-15232916
] 

Colin Patrick McCabe edited comment on HDFS-10257 at 4/8/16 8:59 PM:
---------------------------------------------------------------------

Thanks for following up, guys.  I agree that we need the pthread destructor in order to avoid
leaking memory.


was (Author: cmccabe):
Thanks for following up, guys.  I agree that we need the pthread destructor to avoid leaking
memory.

> 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
>   Original Estimate: 72h
>  Remaining Estimate: 72h
>
> 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)

Mime
View raw message