AFAIK it's really only relevant when you're dealing with computationally
heavy and long running things that need to be multi threaded/forked to be
able to utilize multiple CPU cores. Then these processes might need to
coordinate via, or put results in, a shared space.

When it comes to your usual web application I suppose it could be used to
cache things, at least that's the use case for me. However this cached data
does not need to have very high restrictions on it in my case, ie I don't
need STM features (so far).

I suppose it would be pretty easy to wrap a memory file, something like

mkdir /dev/picolisp
mount -t tmpfs -o size=10M,mode=0755 tmpfs /dev/picolisp
touch /dev/picolisp/data

And then a process does touch /dev/picolisp/lock and then works on data,
after it's finished it removes the lock file.

Any other process first checks if the lock exists before working with the
data file.

Maybe slow but that's what I could come up with from my limited knowledge of
these things.

On Thu, Sep 15, 2011 at 6:44 PM, Alexander Burger <>wrote:

> On Thu, Sep 15, 2011 at 06:22:46PM +0700, Henrik Sarvell wrote:
> > This section seems to imply though that it would be possible to implement
> > STM between forked processes
> > (the
> > shared memory section) or?
> >
> > Or maybe it already exists somehow implicit in PicoLisp?
> I would say no, though I don't fully grasp the implications and purpose
> of STM. At least shared memory is definitely not supported in public
> versions of PicoLisp.
> Cheers,
> - Alex
> --

Reply via email to