projects
/
python_utils.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Adds unittest.
[python_utils.git]
/
collect
/
shared_dict.py
diff --git
a/collect/shared_dict.py
b/collect/shared_dict.py
index ac390bc600e769a94c2205440883257a665917bb..e0a42f2c55c2fc865b0c89642d458ae26009c224 100644
(file)
--- a/
collect/shared_dict.py
+++ b/
collect/shared_dict.py
@@
-31,16
+31,7
@@
import pickle
from contextlib import contextmanager
from functools import wraps
from multiprocessing import RLock, shared_memory
from contextlib import contextmanager
from functools import wraps
from multiprocessing import RLock, shared_memory
-from typing import (
- Any,
- Dict,
- Generator,
- ItemsView,
- Iterator,
- KeysView,
- Optional,
- ValuesView,
-)
+from typing import Any, Dict, Generator, ItemsView, Iterator, KeysView, Optional, ValuesView
from decorator_utils import synchronized
from decorator_utils import synchronized
@@
-94,9
+85,7
@@
class SharedDict(object):
return shared_memory.SharedMemory(name=name, create=True, size=size_bytes)
def _ensure_memory_initialization(self):
return shared_memory.SharedMemory(name=name, create=True, size=size_bytes)
def _ensure_memory_initialization(self):
- memory_is_empty = (
- bytes(self.shared_memory.buf).split(SharedDict.NULL_BYTE, 1)[0] == b''
- )
+ memory_is_empty = bytes(self.shared_memory.buf).split(SharedDict.NULL_BYTE, 1)[0] == b''
if memory_is_empty:
self.clear()
if memory_is_empty:
self.clear()
@@
-108,7
+97,8
@@
class SharedDict(object):
def cleanup(self) -> None:
if not hasattr(self, 'shared_memory'):
return
def cleanup(self) -> None:
if not hasattr(self, 'shared_memory'):
return
- self.shared_memory.unlink()
+ with SharedDict.MPLOCK:
+ self.shared_memory.unlink()
def clear(self) -> None:
self._save_memory({})
def clear(self) -> None:
self._save_memory({})