Sha256: 54d8ff913d8706bad97c9236f016efeb5f8272fd0087e141ecf2d4bdf097b49d

Contents?: true

Size: 588 Bytes

Versions: 3

Compression:

Stored size: 588 Bytes

Contents

#!/usr/bin/env ruby

require "bundler/setup"
require "mysql_getlock"
require 'logger'
require 'optparse'

opts = {
  timeout: -1,
  kill: false
}
OptionParser.new.tap {|op|
  op.on('--timeout VALUE') {|v|
    opts[:timeout] = Float(v)
  }
  op.on('--kill') {|v|
    opts[:kill] = true
  }
  op.parse(ARGV)
}

if opts[:kill]
  trap('INT') do
    exit!
  end
end

mysql2 = Mysql2::Client.new
mutex = MysqlGetlock.new(
  mysql2: mysql2, key: 'mysql_getlock', logger: Logger.new(STDOUT),
  timeout: opts[:timeout]
)
mutex.synchronize do
  loop do
    puts mutex.locked?
    sleep 1
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
mysql_getlock-0.2.3 bin/try
mysql_getlock-0.2.2 bin/try
mysql_getlock-0.2.1 bin/try