Skip to content

Commit 19e4c78

Browse files
committed
Add locking to DummyFileManager
1 parent a483331 commit 19e4c78

File tree

1 file changed

+13
-3
lines changed

1 file changed

+13
-3
lines changed

xarray/backends/file_manager.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -344,9 +344,16 @@ def __hash__(self):
344344
class DummyFileManager(FileManager):
345345
"""FileManager that simply wraps an open file in the FileManager interface."""
346346

347-
def __init__(self, value, *, close=None):
347+
def __init__(
348+
self,
349+
value,
350+
*,
351+
close=None,
352+
lock: Lock | None | Literal[False] = None,
353+
):
348354
if close is None:
349355
close = value.close
356+
self._lock = lock
350357
self._value = value
351358
self._close = close
352359

@@ -360,5 +367,8 @@ def acquire_context(self, needs_lock=True):
360367
yield self._value
361368

362369
def close(self, needs_lock=True):
363-
del needs_lock # ignored
364-
self._close()
370+
if needs_lock and self._lock:
371+
with self._lock:
372+
self._close()
373+
else:
374+
self._close()

0 commit comments

Comments
 (0)