flock(p1) public

Locks or unlocks a file according to locking_constant (a logical or of the values in the table below). Returns false if File::LOCK_NB is specified and the operation would otherwise have blocked. Not available on all platforms.

Locking constants (in class File):

LOCK_EX   | Exclusive lock. Only one process may hold an
          | exclusive lock for a given file at a time.
LOCK_NB   | Don't block when locking. May be combined
          | with other lock options using logical or.
LOCK_SH   | Shared lock. Multiple processes may each hold a
          | shared lock for a given file at the same time.
LOCK_UN   | Unlock.


# update a counter using write lock
# don't use "w" because it truncates the file before lock.
File.open("counter", File::RDWR|File::CREAT, 0644) {|f|
  value = f.read.to_i + 1

# read the counter using read lock
File.open("counter", "r") {|f|
  p f.read
Show source
Register or log in to add new notes.