Allow the TPUConfigResourceMgr to be fetched without causing initialization.

PiperOrigin-RevId: 387673988
Change-Id: If0ae627182e014f075af1391cf3e8dfde9b9ac19
diff --git a/tensorflow/core/tpu/tpu_configuration.cc b/tensorflow/core/tpu/tpu_configuration.cc
index 3788d5c..750252f 100644
--- a/tensorflow/core/tpu/tpu_configuration.cc
+++ b/tensorflow/core/tpu/tpu_configuration.cc
@@ -31,8 +31,10 @@
 void MaybeInitializeTPUSystemForTests() {}
 #endif
 
-ResourceMgr* GetTPUConfigResourceMgr() {
-  MaybeInitializeTPUSystemForTests();
+ResourceMgr* GetTPUConfigResourceMgr(bool initialize_first) {
+  if (initialize_first) {
+    MaybeInitializeTPUSystemForTests();
+  }
 
   // Put all TPU-related state in the global ResourceMgr. This includes the
   // TpuPodState, compilation cache, etc. We don't use the TPU_SYSTEM
diff --git a/tensorflow/core/tpu/tpu_configuration.h b/tensorflow/core/tpu/tpu_configuration.h
index 6c337bd..0fbdb0f 100644
--- a/tensorflow/core/tpu/tpu_configuration.h
+++ b/tensorflow/core/tpu/tpu_configuration.h
@@ -23,7 +23,7 @@
 void MaybeInitializeTPUSystemForTests();
 
 // Returns a process-wide global ResourceMgr.
-ResourceMgr* GetTPUConfigResourceMgr();
+ResourceMgr* GetTPUConfigResourceMgr(bool initialize_first = true);
 
 }  // namespace tensorflow