Class | SyncHash |
In: |
lib/more/facets/synchash.rb
|
Parent: | Hash |
A thread-safe hash. We use a sync object instead of a mutex, because it is re-entrant. An exclusive lock is needed when writing, a shared lock IS NEEDED when reading.
Uses the delegator pattern to allow for multiple implementations!
hash = SyncHash.new hash = SyncHash.new(Hash.new) # Delegates
This class uses the delegator pattern. However we don‘t use Ruby‘s delegation facilities, they are more general and powerful than we need here (and slower). Instead a custom (but simple) solution is used.
hash = SyncHash.new hash = SyncHash.new(Hash.new) # Delegates