Remove unnecessary locking on _cached_mergers.

PiperOrigin-RevId: 406057375
Change-Id: I88db9e4344f74ca68116372b5587e1a17f3eefac
diff --git a/tensorflow/python/framework/device.py b/tensorflow/python/framework/device.py
index 4d6db75..ba5b51f 100644
--- a/tensorflow/python/framework/device.py
+++ b/tensorflow/python/framework/device.py
@@ -14,7 +14,6 @@
 # ==============================================================================
 
 """Class to represent a device."""
-import threading
 
 from tensorflow.python import tf2
 from tensorflow.python.framework import device_spec
@@ -56,7 +55,6 @@
 
 # Performance caches
 _cached_mergers = {}
-_cache_lock = threading.RLock()
 _string_merge_cache = {}
 
 
@@ -90,14 +88,13 @@
   if isinstance(spec, MergeDevice):
     return spec
 
-  with _cache_lock:
-    merger = _cached_mergers.get(spec)
-    if merger:
-      return merger
-
-    merger = MergeDevice(spec)
-    _cached_mergers[spec] = merger
+  merger = _cached_mergers.get(spec)
+  if merger:
     return merger
+  merger = MergeDevice(spec)
+  # No locking needed, since updates are stateless.
+  _cached_mergers[spec] = merger
+  return merger
 
 
 class MergeDevice(object):