<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-text-plain" wrap="true" style="font-family:
      -moz-fixed; font-size: 14px;" lang="x-unicode">
      <pre wrap="">On 24.05.2017 14:32, Simon McVittie wrote:
</pre>
      <blockquote type="cite" style="color: #000000;">
        <pre wrap="">On Wed, 24 May 2017 at 23:26:34 +1200, Lawrence D'Oliveiro wrote:
</pre>
      </blockquote>
      <pre wrap="">... cut ...

</pre>
      <blockquote type="cite" style="color: #000000;">
        <pre wrap="">Relying on introspection also adds extra, hidden method call round-trips,
which have a measurable impact on performance (demonstrated in Will
Thompson's experiments with removing introspection from telepathy-gabble's
automated tests).

If Introspect() is called synchronously, like any other synchronous method
call it will block the main loop, and can result in message re-ordering[1],
which in the worst case can break the intended semantics of D-Bus APIs.

Introspection is mostly a development and debugging feature, and ideally
nothing would rely on it at runtime.
</pre>
      </blockquote>
      <pre wrap="">For dynamic languages it is very important (and many times a boon) to have the introspection
facility available at runtime. A single implementation can then be used to add proper interfacing to
any DBus service at runtime. If done properly, it should not block anything.

---rony

</pre>
    </div>
  </body>
</html>