Sha256: a1540b39912e3f9f0508b720b276e0b8ae6b2a8a12dca24ef15162037311da87

Contents?: true

Size: 600 Bytes

Versions: 8

Compression:

Stored size: 600 Bytes

Contents

require 'distributed_mutex'

# Simple global variable mutex, not production quality more
# as a test implementation for the super class.
class GlobalMutex < DistributedMutex

  private

  def get_lock
    if @timeout && @timeout > 1
      1.upto(@timeout) do
        if set_global_mutex
          return true
        else
          sleep(1)
        end
      end
    end
    return set_global_mutex
  end

  def release_lock
    eval("$#{@key} = nil")
    true
  end

  def set_global_mutex
    if nil == eval("$#{@key}")
      eval("$#{@key} = 1")
      true
    else
      false
    end
  end

end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
distributed_mutex-1.1.4 lib/global_mutex.rb
distributed_mutex-1.1.3 lib/global_mutex.rb
distributed_mutex-1.1.2 lib/global_mutex.rb
distributed_mutex-1.1.1 lib/global_mutex.rb
distributed_mutex-1.1.0 lib/global_mutex.rb
distributed_mutex-1.0.2 lib/global_mutex.rb
distributed_mutex-1.0.1 lib/global_mutex.rb
distributed_mutex-1.0.0 lib/global_mutex.rb