cultcache-ts: state plainly what the 0.14.2 lock protects
push and delete no longer lose records across concurrent TypeScript and Rust writers. A full pushAll and any C# write still replace the whole store. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
a3137cf3a6
commit
4a2acf0e35
1 changed files with 4 additions and 2 deletions
|
|
@ -8,8 +8,10 @@ All notable changes to `@gamecult/cultcache-ts` are recorded here, following
|
|||
### Added
|
||||
- `SingleFileMessagePackBackingStore` takes a cross-process write lock on `<file>.lock`,
|
||||
interoperable with the C# and Rust runtimes (`flock` on Unix, `LockFileEx` on Windows).
|
||||
Each write reads the current file, merges and replaces it under the lock, so concurrent
|
||||
writers no longer lose each other's records.
|
||||
`push` and `delete` read the current file, merge and replace it under the lock, so concurrent
|
||||
TypeScript and Rust writers no longer lose each other's records across those calls. A full
|
||||
`pushAll` still replaces the whole store, and so does any C# write, so records a concurrent
|
||||
writer added are still lost to either of them.
|
||||
- The staged file is fsynced before the replace, and on Unix the directory after it. A
|
||||
directory sync failure after the replace is reported as replaced but not durable.
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue