diff options
author | Manjunath Kudlur <keveman@gmail.com> | 2015-11-06 16:27:58 -0800 |
---|---|---|
committer | Manjunath Kudlur <keveman@gmail.com> | 2015-11-06 16:27:58 -0800 |
commit | f41959ccb2d9d4c722fe8fc3351401d53bcf4900 (patch) | |
tree | ef0ca22cb2a5ac4bdec9d080d8e0788a53ed496d /tensorflow/stream_executor/lib/static_threadlocal.h |
TensorFlow: Initial commit of TensorFlow library.
TensorFlow is an open source software library for numerical computation
using data flow graphs.
Base CL: 107276108
Diffstat (limited to 'tensorflow/stream_executor/lib/static_threadlocal.h')
-rw-r--r-- | tensorflow/stream_executor/lib/static_threadlocal.h | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/tensorflow/stream_executor/lib/static_threadlocal.h b/tensorflow/stream_executor/lib/static_threadlocal.h new file mode 100644 index 0000000000..9227b2cf0d --- /dev/null +++ b/tensorflow/stream_executor/lib/static_threadlocal.h @@ -0,0 +1,30 @@ +// Copyright 2006 Google Inc. +// All rights reserved. +// Author: Yaz Saito (saito@google.com) +#ifndef TENSORFLOW_STREAM_EXECUTOR_LIB_STATIC_THREADLOCAL_H_ +#define TENSORFLOW_STREAM_EXECUTOR_LIB_STATIC_THREADLOCAL_H_ + +// For POD types in TLS mode, s_obj_VAR is the thread-local variable. +#define SE_STATIC_THREAD_LOCAL_POD(_Type_, _var_) \ + static thread_local _Type_ s_obj_##_var_; \ + namespace { \ + class ThreadLocal_##_var_ { \ + public: \ + ThreadLocal_##_var_() {} \ + void Init() {} \ + inline _Type_ *pointer() const { \ + return &s_obj_##_var_; \ + } \ + inline _Type_ *safe_pointer() const { \ + return &s_obj_##_var_; \ + } \ + _Type_ &get() const { \ + return s_obj_##_var_; \ + } \ + bool is_native_tls() const { return true; } \ + private: \ + SE_DISALLOW_COPY_AND_ASSIGN(ThreadLocal_##_var_); \ + } _var_; \ + } + +#endif // TENSORFLOW_STREAM_EXECUTOR_LIB_STATIC_THREADLOCAL_H_ |