2015-12-16 08:07:31 +03:00
|
|
|
# frozen_string_literal: false
|
2003-10-20 19:24:00 +04:00
|
|
|
require 'drb/drb'
|
|
|
|
require 'drb/extserv'
|
|
|
|
require 'timeout'
|
|
|
|
|
2014-06-01 07:07:58 +04:00
|
|
|
module DRbTests
|
|
|
|
|
2003-10-20 19:24:00 +04:00
|
|
|
class DRbLarge
|
|
|
|
include DRbUndumped
|
|
|
|
|
|
|
|
def size(ary)
|
2009-03-06 06:56:38 +03:00
|
|
|
ary.size
|
2003-10-20 19:24:00 +04:00
|
|
|
end
|
|
|
|
|
|
|
|
def sum(ary)
|
2016-01-31 06:34:21 +03:00
|
|
|
ary.inject(:+)
|
|
|
|
end
|
|
|
|
|
|
|
|
def multiply(ary)
|
|
|
|
ary.inject(:*)
|
|
|
|
end
|
|
|
|
|
|
|
|
def avg(ary)
|
|
|
|
return if ary.empty?
|
|
|
|
if ary.any? {|n| n.is_a? String}
|
|
|
|
raise TypeError
|
|
|
|
else
|
|
|
|
sum(ary).to_f / ary.count
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def median(ary)
|
|
|
|
return if ary.empty?
|
|
|
|
if ary.any? {|n| n.is_a? String}
|
|
|
|
raise TypeError
|
|
|
|
else
|
|
|
|
avg ary.sort[((ary.length - 1) / 2)..(ary.length / 2)]
|
2003-10-20 19:24:00 +04:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def arg_test(*arg)
|
|
|
|
# nop
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2014-06-01 07:07:58 +04:00
|
|
|
end
|
|
|
|
|
2003-10-20 19:24:00 +04:00
|
|
|
if __FILE__ == $0
|
|
|
|
def ARGV.shift
|
|
|
|
it = super()
|
|
|
|
raise "usage: #{$0} <manager-uri> <name>" unless it
|
|
|
|
it
|
|
|
|
end
|
|
|
|
|
|
|
|
DRb::DRbServer.default_argc_limit(3)
|
|
|
|
DRb::DRbServer.default_load_limit(100000)
|
2014-06-01 07:07:58 +04:00
|
|
|
DRb.start_service('druby://localhost:0', DRbTests::DRbLarge.new)
|
2014-02-07 05:54:40 +04:00
|
|
|
es = DRb::ExtServ.new(ARGV.shift, ARGV.shift)
|
2003-10-20 19:24:00 +04:00
|
|
|
DRb.thread.join
|
2014-02-07 05:54:40 +04:00
|
|
|
es.stop_service if es.alive?
|
2003-10-20 19:24:00 +04:00
|
|
|
end
|
|
|
|
|