def self.signal_waiting_test(test_name, proxy_call=false)
signal_data = SIP::Locator[:Tlocks][test_name] if SIP::Locator[:Tlocks]
unless signal_data
unless proxy_call
SipLogger['siplog::sip_testcompletionsignalinghelper'].debug "Signaling the remote object"
@@ro = DRbObject.new(nil, "druby://#{SipperConfigurator[:TestManagerName]}:#{SipperConfigurator[:TestManagerPort]}") unless @@ro
signal_data = @@ro.signal_waiting_test(test_name)
return true
else
SipLogger['siplog::sip_testcompletionsignalinghelper'].debug "No SD anywhere"
return false
end
end
signal_data.lock.synchronize do
signal_data.lock << "signal"
if signal_data.cond.count_waiters > 0
SipLogger['siplog::sip_testcompletionsignalinghelper'].debug("Signaling the waiting test driver")
signal_data.cond.signal
else
SipLogger['siplog::sip_testcompletionsignalinghelper'].debug "Queueing the signal"
end
end
end