diff options
author | David Heinemeier Hansson <david@loudthinking.com> | 2005-09-29 12:18:51 +0000 |
---|---|---|
committer | David Heinemeier Hansson <david@loudthinking.com> | 2005-09-29 12:18:51 +0000 |
commit | 0a0ac868453e9d8d9ee1dac6a7eb274772235b05 (patch) | |
tree | 1db7e1fce4d2c62f97c204ef72e7898c5263c82a /railties/bin/tracker | |
parent | 070d218c479c8cbb41e78f599110f0ea1cf0343a (diff) | |
download | rails-0a0ac868453e9d8d9ee1dac6a7eb274772235b05.tar.gz rails-0a0ac868453e9d8d9ee1dac6a7eb274772235b05.tar.bz2 rails-0a0ac868453e9d8d9ee1dac6a7eb274772235b05.zip |
Removed all the scripts in script/* and replaced it with one generic portal: script/run
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@2411 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'railties/bin/tracker')
-rw-r--r-- | railties/bin/tracker | 69 |
1 files changed, 0 insertions, 69 deletions
diff --git a/railties/bin/tracker b/railties/bin/tracker deleted file mode 100644 index 859c9fa0e0..0000000000 --- a/railties/bin/tracker +++ /dev/null @@ -1,69 +0,0 @@ -#!/usr/local/bin/ruby - -require 'drb' -require 'thread' - -def message(s) - $stderr.puts "tracker: #{s}" if ENV && ENV["DEBUG_GATEWAY"] -end - -class Tracker - include DRbUndumped - - def initialize(instances, socket_path) - @instances = instances - @socket = File.expand_path(socket_path) - @active = false - - @listeners = [] - @instances.times { @listeners << Mutex.new } - - message "using #{@listeners.length} listeners" - message "opening socket at #{@socket}" - - @service = DRb.start_service("drbunix://#{@socket}", self) - end - - def with_listener - message "listener requested" - - mutex = has_lock = index = nil - 3.times do - @listeners.each_with_index do |mutex, index| - has_lock = mutex.try_lock - break if has_lock - end - break if has_lock - sleep 0.05 - end - - if has_lock - message "obtained listener #{index}" - @active = true - begin yield index - ensure - mutex.unlock - message "released listener #{index}" - end - else - message "dropping request because no listeners are available!" - end - end - - def background(check_interval = nil) - if check_interval - loop do - sleep check_interval - message "Idle for #{check_interval}, shutting down" unless @active - @active = false - Kernel.exit 0 - end - else DRb.thread.join - end - end -end - -socket_path = ARGV.shift -instances = ARGV.shift.to_i -t = Tracker.new(instances, socket_path) -t.background(ARGV.first ? ARGV.shift.to_i : 90)
\ No newline at end of file |