# 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