Feature: Thread-safe engine cache prevents TOCTOU race on MEMORY_ENGINES As a developer relying on the in-memory SQLite engine cache I want MEMORY_ENGINES access to be protected by a lock So that concurrent threads cannot create duplicate engine instances for the same URL # --- Lock Export --- Scenario: MEMORY_ENGINES_LOCK is exported from engine_cache module Given the engine cache module is imported Then MEMORY_ENGINES_LOCK should be accessible from the engine_cache module And MEMORY_ENGINES_LOCK should be a threading.Lock instance # --- Cache-Hit Regression --- Scenario: A second UnitOfWork for the same in-memory URL reuses the cached engine Given the engine cache is cleared And a UnitOfWork is created for "sqlite:///:memory:" When a second UnitOfWork is created for "sqlite:///:memory:" Then both UnitOfWork instances should share the same engine instance # --- Lock Acquisition --- Scenario: The engine property acquires MEMORY_ENGINES_LOCK before creating an engine Given the engine cache is cleared And MEMORY_ENGINES_LOCK acquisition is tracked When a UnitOfWork engine is accessed for "sqlite:///:memory:" Then MEMORY_ENGINES_LOCK should have been acquired at least once # --- Concurrent Access --- Scenario: Concurrent engine creation for the same URL yields one engine instance Given the engine cache is cleared When 10 threads each access the engine cache for "sqlite:///:memory:" Then all threads should have received the same engine instance And MEMORY_ENGINES should contain exactly one entry for "sqlite:///:memory:"