OptMem/WINDOWS.md
CPRoptmem 3411344db6 fix: native Windows support (msvcrt lock instead of fcntl)
fcntl does not exist on Windows, so memo crashed on import. Guard the
import and use msvcrt advisory locking with spin/backoff; open the lock
file in append mode so parallel sessions don't break each other's locks.

Verified: 8 parallel processes x 200 notes = 1600/1600 records on
native Windows (no WSL).
2026-07-27 08:31:11 +01:00

818 B

Windows support

OptMem now runs on native Windows (no WSL required).

What changed

  • import fcntl is guarded — falls back to None on platforms without it.
  • locked() uses msvcrt advisory locking with spin/backoff when fcntl is unavailable, so parallel sessions (the documented multi-process case) queue instead of raising Resource deadlock avoided.
  • The .lock file is opened in append mode ("a") rather than "w", which would truncate and break locks held by other processes on Windows.

Test (Windows native, no WSL)

python memo init
set MEMORY_DIR=C:\path\to\mem
python memo note "first memory"
python memo note "second memory"
python memo wake

Concurrency: 8 parallel memo note processes writing 1600 memories resulted in 1600/1600 records persisted (lock verified).