Sha256: 5d913bc1cd04dab50c0c732f82658cd87cd13d43842ce30e384780a99f0cf351

Contents?: true

Size: 293 Bytes

Versions: 1

Compression:

Stored size: 293 Bytes

Contents

require "thread"
module MutexCode
  def semaphore
    @semaphore ||= Mutex.new
  end

  def synchronized
    semaphore.synchronize do
      yield
    end
  end

  def is_blocked?
    semaphore.locked?
  end

  def only_once
    synchronized do
      yield
    end unless is_blocked?
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
contextr-0.1.0 lib/contextr/modules/mutex_code.rb