HADOOP-11638. OpensslSecureRandom.c pthreads_thread_id should support FreeBSD and Solaris in addition to Linux. Contributed by Kiran Kumar M R.
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/72cd4e4a Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/72cd4e4a Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/72cd4e4a Branch: refs/heads/HDFS-7836 Commit: 72cd4e4a4eb2a9f8695d4c67eb55dd2be36c52dc Parents: 685dbaf Author: cnauroth <[email protected]> Authored: Mon Mar 16 13:26:57 2015 -0700 Committer: cnauroth <[email protected]> Committed: Mon Mar 16 14:04:40 2015 -0700 ---------------------------------------------------------------------- hadoop-common-project/hadoop-common/CHANGES.txt | 3 +++ .../hadoop/crypto/random/OpensslSecureRandom.c | 18 +++++++++++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/72cd4e4a/hadoop-common-project/hadoop-common/CHANGES.txt ---------------------------------------------------------------------- diff --git a/hadoop-common-project/hadoop-common/CHANGES.txt b/hadoop-common-project/hadoop-common/CHANGES.txt index aa17841..2a2b916 100644 --- a/hadoop-common-project/hadoop-common/CHANGES.txt +++ b/hadoop-common-project/hadoop-common/CHANGES.txt @@ -1105,6 +1105,9 @@ Release 2.7.0 - UNRELEASED HADOOP-11558. Fix dead links to doc of hadoop-tools. (Jean-Pierre Matsumoto via ozawa) + HADOOP-11638. OpensslSecureRandom.c pthreads_thread_id should support FreeBSD + and Solaris in addition to Linux. (Kiran Kumar M R via cnauroth) + Release 2.6.1 - UNRELEASED INCOMPATIBLE CHANGES http://git-wip-us.apache.org/repos/asf/hadoop/blob/72cd4e4a/hadoop-common-project/hadoop-common/src/main/native/src/org/apache/hadoop/crypto/random/OpensslSecureRandom.c ---------------------------------------------------------------------- diff --git a/hadoop-common-project/hadoop-common/src/main/native/src/org/apache/hadoop/crypto/random/OpensslSecureRandom.c b/hadoop-common-project/hadoop-common/src/main/native/src/org/apache/hadoop/crypto/random/OpensslSecureRandom.c index 6c31d10..8f0c06d 100644 --- a/hadoop-common-project/hadoop-common/src/main/native/src/org/apache/hadoop/crypto/random/OpensslSecureRandom.c +++ b/hadoop-common-project/hadoop-common/src/main/native/src/org/apache/hadoop/crypto/random/OpensslSecureRandom.c @@ -29,6 +29,10 @@ #include <sys/types.h> #endif +#if defined(__FreeBSD__) +#include <pthread_np.h> +#endif + #ifdef WINDOWS #include <windows.h> #endif @@ -274,7 +278,19 @@ static void pthreads_locking_callback(int mode, int type, char *file, int line) static unsigned long pthreads_thread_id(void) { - return (unsigned long)syscall(SYS_gettid); + unsigned long thread_id = 0; +#if defined(__linux__) + thread_id = (unsigned long)syscall(SYS_gettid); +#elif defined(__FreeBSD__) + thread_id = (unsigned long)pthread_getthreadid_np(); +#elif defined(__sun) + thread_id = (unsigned long)pthread_self(); +#elif defined(__APPLE__) + (void)pthread_threadid_np(pthread_self(), &thread_id); +#else +#error "Platform not supported" +#endif + return thread_id; } #endif /* UNIX */
