# File lib/dbus/bus.rb, line 393 def send_sync_or_async(message, &reply_handler) ret = nil if reply_handler.nil? send_sync(message) do |rmsg| if rmsg.is_a?(Error) raise rmsg else ret = rmsg.params end end else on_return(message) do |rmsg| if rmsg.is_a?(Error) reply_handler.call(rmsg) else reply_handler.call(rmsg, * rmsg.params) end end send(message.marshall) end ret end