aboutsummaryrefslogtreecommitdiffhomepage
path: root/tensorflow/stream_executor/lib
diff options
context:
space:
mode:
authorGravatar A. Unique TensorFlower <gardener@tensorflow.org>2017-01-19 14:33:38 -0800
committerGravatar TensorFlower Gardener <gardener@tensorflow.org>2017-01-19 14:44:52 -0800
commita7b60a8206554270c1d066fd66242b1d90574a14 (patch)
tree9ffe4e061a8972ecdbb012dc8418a0b20e2ea283 /tensorflow/stream_executor/lib
parentf736991fd3a7987665a6f9fcd26d464ea7f68e2b (diff)
Add hooks for StreamExecutor module initialization ordering
Change: 145010633
Diffstat (limited to 'tensorflow/stream_executor/lib')
-rw-r--r--tensorflow/stream_executor/lib/initialize.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/tensorflow/stream_executor/lib/initialize.h b/tensorflow/stream_executor/lib/initialize.h
index 1e8a1bad9f..1b8c03910c 100644
--- a/tensorflow/stream_executor/lib/initialize.h
+++ b/tensorflow/stream_executor/lib/initialize.h
@@ -22,6 +22,8 @@ limitations under the License.
#else
#undef REGISTER_MODULE_INITIALIZER
+#undef DECLARE_MODULE_INITIALIZER
+#undef REGISTER_MODULE_INITIALIZER_SEQUENCE
namespace perftools {
namespace gputools {
@@ -31,6 +33,18 @@ class Initializer {
public:
typedef void (*InitializerFunc)();
explicit Initializer(InitializerFunc func) { func(); }
+
+ struct Dependency {
+ Dependency(const char *n, Initializer *i) : name(n), initializer(i) {}
+ const char *const name;
+ Initializer *const initializer;
+ };
+
+ struct DependencyRegisterer {
+ DependencyRegisterer(const char *type, const char *name,
+ Initializer *initializer,
+ const Dependency &dependency);
+ };
};
} // namespace port
@@ -45,6 +59,14 @@ class Initializer {
#define REGISTER_MODULE_INITIALIZER(name, body) \
REGISTER_INITIALIZER(module, name, body)
+#define DECLARE_INITIALIZER(type, name) \
+ extern perftools::gputools::port::Initializer \
+ google_initializer_##type##_##name
+
+#define DECLARE_MODULE_INITIALIZER(name) DECLARE_INITIALIZER(module, name)
+
+#define REGISTER_MODULE_INITIALIZER_SEQUENCE(name1, name2)
+
#endif // !defined(PLATFORM_GOOGLE)
#endif // TENSORFLOW_STREAM_EXECUTOR_LIB_INITIALIZE_H_