Improve venv cache handling:

- Add FileLock readonly mode, default is write mode (i.e. exclusive lock, preserving behavior)
- Add venv cache now uses readonly lock when copying folders from venv cache into target folder. This enables multiple read, single write operation
- Do not lock the cache folder if we do not need to delete old entries
This commit is contained in:
allegroai
2024-02-29 14:19:24 +02:00
parent 74edf6aa36
commit 01e8ffd854
6 changed files with 59 additions and 23 deletions

View File

@@ -420,6 +420,7 @@ def mkstemp(
open_kwargs=None, # type: Optional[Dict[Text, Any]]
text=True, # type: bool
name_only=False, # type: bool
mode=None, # type: str
*args,
**kwargs):
# type: (...) -> Union[(IO[AnyStr], Text), Text]
@@ -429,12 +430,14 @@ def mkstemp(
:param open_kwargs: keyword arguments for ``io.open``
:param text: open in text mode
:param name_only: close the file and return its name
:param mode: open file mode
:param args: tempfile.mkstemp args
:param kwargs: tempfile.mkstemp kwargs
"""
fd, name = tempfile.mkstemp(text=text, *args, **kwargs)
mode = 'w+'
if not text:
if not mode:
mode = 'w+'
if not text and 'b' not in mode:
mode += 'b'
if name_only:
os.close(fd)