Sha256: 6b2d8c1fbcad08533f294917e3f247ac1443d1103b754987d68cf62229d93c46
Contents?: true
Size: 808 Bytes
Versions: 2
Compression:
Stored size: 808 Bytes
Contents
# -*- coding: binary -*- require 'thread' module Rex ### # # This module provides a uniform reference counted interface for classes to # use. # ### module Ref # # Initializes the reference count to one. # def refinit @_references = 1 @_references_mutex = Mutex.new self end # # Increments the total number of references. # def ref @_references_mutex.synchronize { @_references += 1 } self end # # Decrements the total number of references. If the reference count # reaches zero, true is returned. Otherwise, false is returned. # def deref @_references_mutex.synchronize { if ((@_references -= 1) == 0) cleanup true else false end } end # # Called to clean up resources once the ref count drops to zero. # def cleanup end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
librex-0.0.68 | lib/rex/sync/ref.rb |
librex-0.0.66 | lib/rex/sync/ref.rb |