threading support in python
sjdevnull at yahoo.com
sjdevnull at yahoo.com
Wed Sep 6 03:13:57 EDT 2006
Paul Rubin wrote:
> "sjdevnull at yahoo.com" <sjdevnull at yahoo.com> writes:
> > > I think it's even worse. The standard Python library offers
> > > shared memory, but not cross-process locks.
> >
> > File locks are supported by the standard library (at least on Unix,
> > I've not tried on Windows). They work cross-process and are a normal
> > method of interprocess locking even in C code.
>
> I may be missing your point but I didn't realize you could use file
> locks to synchronize shared memory in any useful way.
You can, absolutely. If you're sharing memory through mmap it's
usually the preferred solution; fcntl locks ranges of an open file, so
you lock exactly the portions of the mmap that you're using at a given
time.
It's not an unusual use at all, Unix programs have used file locks in
this manner for upwards of a decade--things like the Apache public
runtime use fcntl or flock for interprocess mutexes, and they're quite
efficient. (The futexes you mentioned are a very recent Linux
innovation).
More information about the Python-list
mailing list