# File lib/dbus/bus.rb, line 541 def send_sync(m, &retc) # :yields: reply/return message return if m.nil? #check if somethings wrong send(m.marshall) @method_call_msgs[m.serial] = m @method_call_replies[m.serial] = retc retm = wait_for_message return if retm.nil? #check if somethings wrong process(retm) until [DBus::Message::ERROR, DBus::Message::METHOD_RETURN].include?(retm.message_type) and retm.reply_serial == m.serial retm = wait_for_message process(retm) end end