提交 865099c2 authored 作者: Brandon T. Willard's avatar Brandon T. Willard 提交者: Brandon T. Willard

Let filelock determine valid values for timeout

上级 66d973bd
......@@ -4,8 +4,8 @@ in the same compilation directory (which can cause crashes).
"""
import os
import threading
import typing
from contextlib import contextmanager
from typing import Optional
import filelock
......@@ -45,7 +45,7 @@ def force_unlock(lock_dir: os.PathLike):
@contextmanager
def lock_ctx(lock_dir: os.PathLike = None, *, timeout: typing.Optional[float] = -1):
def lock_ctx(lock_dir: os.PathLike = None, *, timeout: Optional[float] = None):
"""Context manager that wraps around FileLock and SoftFileLock from filelock package.
Parameters
......@@ -59,10 +59,9 @@ def lock_ctx(lock_dir: os.PathLike = None, *, timeout: typing.Optional[float] =
"""
if lock_dir is None:
lock_dir = config.compiledir
if timeout == -1:
if timeout is None:
timeout = config.compile__timeout
elif not (timeout is None or timeout > 0):
raise ValueError(f"Timeout parameter must be None or positive. Got {timeout}.")
# locks are kept in a dictionary to account for changing compiledirs
dir_key = f"{lock_dir}-{os.getpid()}"
......
......@@ -11,16 +11,6 @@ import pytest
from aesara.compile.compilelock import force_unlock, local_mem, lock_ctx
def test_compilelock_errors():
with tempfile.TemporaryDirectory() as dir:
with pytest.raises(ValueError):
with lock_ctx(dir, timeout=0):
pass
with pytest.raises(ValueError):
with lock_ctx(dir, timeout=-2):
pass
def test_compilelock_force_unlock():
with tempfile.TemporaryDirectory() as dir_name:
with lock_ctx(dir_name):
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论