checkdisk() is called from the parsing threads and sums the write
positions of every reader. The geometry/index/vertex/node positions were
already std::atomic, but memfile::off (the string pool and tree sizes)
was a plain size_t that the owning thread updates in memfile_write(),
which ThreadSanitizer reports as a data race.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EfWkLhwEvKQoNGVPsLGehj