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):