File: sync.rb [sync: Ruby Standard Library Documentation]

Last Modified
  2019-05-06 17:16:43 -0500
Requires

## Description

    sync.rb - 2 phase lock with counter
        $Release Version: 1.0$
        $Revision: 40825 $
        by Keiju ISHITSUKA(keiju@ishitsuka.com)

–

    Sync_m, Synchronizer_m
    Usage:
     obj.extend(Sync_m)
     or
     class Foo
         include Sync_m
         :
     end

     Sync_m#sync_mode
     Sync_m#sync_locked?, locked?
     Sync_m#sync_shared?, shared?
     Sync_m#sync_exclusive?, sync_exclusive?
     Sync_m#sync_try_lock, try_lock
     Sync_m#sync_lock, lock
     Sync_m#sync_unlock, unlock

    Sync, Synchronizer:
    Usage:
     sync = Sync.new

     Sync#mode
     Sync#locked?
     Sync#shared?
     Sync#exclusive?
     Sync#try_lock(mode) -- mode = :EX, :SH, :UN
     Sync#lock(mode)     -- mode = :EX, :SH, :UN
     Sync#unlock
     Sync#synchronize(mode) {...}