Subject: Re: bug#75209: 30.0.93; Emacs reader failed to read data in "/home/nlj/.cache/org-persist/gc-lock.eld"

From: Ihor Radchenko <[email-masked]>
Date: Sun, 05 Jan 2025 10:03:49 +0000

Eli Zaretskii <[email-masked]> writes:

> Thanks.  I think I still don't have a clear idea of the usage of these
> caches.  Are the caches supposed to be common to all Emacs sessions?

Yes.

> E.g., when a cache changes by one session, are other sessions supposed
> to know about the change?

Usually yes, except for cache entries that are supposed to live until
the end of Emacs session.

> And if the cache is common to all sessions, then perhaps reading the
> index before writing it should avoid several sessions step on each
> other's toes?

You are right. The only problem is short-living caches that should be
cleared at the end of Emacs session that created it.

> One way of rewriting a file atomically is to write the stuff to a
> temporary file, then rename it to the target name.  If Org doesn't
> already do that, maybe you should try doing that (together with
> reading the file before updating it)?

Org uses `with-temp-file'. Is there an alternative built-in and more
robust way to write string to file?

-- 
Ihor Radchenko // yantar92,
Org mode maintainer,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>