diff options
author | A. Unique TensorFlower <gardener@tensorflow.org> | 2017-01-19 14:33:38 -0800 |
---|---|---|
committer | TensorFlower Gardener <gardener@tensorflow.org> | 2017-01-19 14:44:52 -0800 |
commit | a7b60a8206554270c1d066fd66242b1d90574a14 (patch) | |
tree | 9ffe4e061a8972ecdbb012dc8418a0b20e2ea283 /tensorflow/stream_executor/lib | |
parent | f736991fd3a7987665a6f9fcd26d464ea7f68e2b (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.h | 22 |
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_ |