This is a Ruby tree! It shows every object from the Ruby Programming Language in a tree format.

flock

        # File.flock

(from ruby core)
---
    file.flock(locking_constant) -> 0 or false

---

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.

Example:

    # 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|
      f.flock(File::LOCK_EX)
      value = f.read.to_i + 1
      f.rewind
      f.write("#{value}\n")
      f.flush
      f.truncate(f.pos)
    }

    # read the counter using read lock
    File.open("counter", "r") {|f|
      f.flock(File::LOCK_SH)
      p f.read
    }



      

This is MURDOC! A Ruby documentation browser inspired by Smalltalk-80. It allows you to learn about Ruby by browsing through its class hierarchies, and see any of its methods.