[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

file locking

Mark Volkmann

1/22/2006 5:46:00 PM

I'm trying to understand usage of file.flock(File::LOCK_SH) which
obtains a shared lock. The documentation says it allows other
processes to also obtain a shared lock. What's the point of a lock if
it isn't locking anybody else out? There must be a use case for this
that I'm not seeing.

Also, the documentation for File.flock says that it isn't supported on
all platforms. If you know of platforms that definitely do or do not
support this, I'd like to hear about them. I'm particularly interested
in XP and Fedora Core Linux.

--
R. Mark Volkmann
Partner, Object Computing, Inc.


2 Answers

Eero Saynatkari

1/22/2006 7:56:00 PM

0

Mark Volkmann wrote:
> I'm trying to understand usage of file.flock(File::LOCK_SH) which
> obtains a shared lock. The documentation says it allows other
> processes to also obtain a shared lock. What's the point of a lock if
> it isn't locking anybody else out? There must be a use case for this
> that I'm not seeing.

A shared lock is usually implemented as a read-lock; in
other words, multiple processes can read from the file
at the same time but none may modify it.

> Also, the documentation for File.flock says that it isn't supported on
> all platforms. If you know of platforms that definitely do or do not
> support this, I'd like to hear about them. I'm particularly interested
> in XP and Fedora Core Linux.

This I do not know.


E

--
Posted via http://www.ruby-....


Jeremy Henty

1/22/2006 11:44:00 PM

0

On 2006-01-22, Mark Volkmann <r.mark.volkmann@gmail.com> wrote:

> I'm trying to understand usage of file.flock(File::LOCK_SH)
> ... What's the point of a lock if it isn't locking anybody else out?

A shared lock locks out anyone who wants an exclusive lock. Typically
you want an exclusive lock for writing to a file and a shared lock for
reading it. That's because it's OK for several people to read a file
simultaneously, but if someone wants to write to it then no-one else
should be allowed to read *or* write, otherwise hilarity may ensue.

Cheers,

Jeremy Henty