diff --git a/M02_MasterTemplete/M02_Hopyo_Ours.py b/M02_MasterTemplete/M02_Hopyo_Ours.py index 667958381..92272c4ad 100644 --- a/M02_MasterTemplete/M02_Hopyo_Ours.py +++ b/M02_MasterTemplete/M02_Hopyo_Ours.py @@ -326,6 +326,8 @@ def build(ver: str | None = None) -> list[dict]: ver = ver or version() table = [fingerprint(one["로직"], one["단위"]) for one in hopyo_match.targets()["로직"]] atomic_write_json(path_of(ver), {"판": ver, "지문판": FP_VERSION, "표": table}) + with _LOCK: + _STATE.update(표=table, 표판=ver) return table @@ -351,10 +353,7 @@ def warm(build_missing: bool = False) -> threading.Thread | None: def work() -> None: try: if table() is None and build_missing: - ver = version() - got = build(ver) - with _LOCK: - _STATE.update(표=got, 표판=ver) + build(version()) except Exception: # noqa: BLE001 — 마스터가 깨져도 서버를 막지 않음(보기에서 「준비 중」) pass diff --git a/resources/tester/test_m02_hopyo_ours.py b/resources/tester/test_m02_hopyo_ours.py index 4027d9d66..bc9414960 100644 --- a/resources/tester/test_m02_hopyo_ours.py +++ b/resources/tester/test_m02_hopyo_ours.py @@ -34,6 +34,7 @@ def test_캐시_쓰기_읽기_준비_전_none(cache): built = ours.build() assert [o["로직"] for o in built] == ["GC000198", "GC000211", "GC000268"] assert ours.path_of().parent == cache and ours.path_of().is_file() + assert ours.ready() and ours.table() == built ours._STATE.update(표판=None, 표=None) assert [o["로직"] for o in ours.table()] == ["GC000198", "GC000211", "GC000268"] assert master_hash() == before