As per my understanding, dbus re-use the share connection. So if you do dbus_bus_get(). Then it checks for any existing free connection with the given bus, if it available then it allocate it for application, if no free connection available then it create a new connection and keep its record to reuse it. Thats why we can't close the shared connection, if we try to do so , dbus gives a runtime error.
<br><br>But a private connection is dedicated to calling application and should be close by application at the end.<br><br>Not sure but in my understanding this rule is followed more strictly in the case of system bus because the shared connections are system wide and can be shared between different sessions. While in the case of session bus the shared connections are limited to only particular session.
<br><br>-Br<br>Naveen<br><br><div class="gmail_quote">On Jan 8, 2008 3:55 PM, Ge@@ru &lt;<a href="mailto:geaaru@gmail.com">geaaru@gmail.com</a>&gt; wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
On dbus session (share connection) works fine. Only on system session i<br>have this problem.<br><br>So, why i can&#39;t close this shared connection?<br><br>Thanks<br><font color="#888888"><br>Ge@@ru<br></font><div><div>
</div><div class="Wj3C7c"><br>On Tue, 2008-01-08 at 16:01 +0200, Naveen Verma wrote:<br>&gt; Hi,<br>&gt;<br>&gt; Probably you are taking a shared connection which you can&#39;t close,<br>&gt; thats why this error is coming. What if you could try to take a
<br>&gt; private connection (dbus_bus_get_private()), and<br>&gt; close(dbus_connection_close()) and<br>&gt; unreferenced(dbus_connection_unref()) after use and then call<br>&gt; dbus_shutdown()?<br>&gt;<br>&gt; -Br<br>&gt; Naveen
<br>&gt;<br>&gt; On Jan 8, 2008 2:51 PM, Ge@@ru &lt;<a href="mailto:geaaru@gmail.com">geaaru@gmail.com</a>&gt; wrote:<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; Hi at all,<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;i want use dbus_shutdown function for deallocate internal<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; dbus variable<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; before exit from my application and avoid valgrind warning.<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; On bus session this works fine but on system bus i have this<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; abort:<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; process 26586: dbus_shutdown() called but connections were
<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; still live.<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; This probably means the application did not drop all its<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; references to<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; bus connections<br>&gt;<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; Why? Have you an idea how can i resolve this problem?
<br>&gt;<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; Thanks in advance.<br>&gt;<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; Ge@@ru<br>&gt;<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; _______________________________________________<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; dbus mailing list<br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; <a href="mailto:dbus@lists.freedesktop.org">
dbus@lists.freedesktop.org</a><br>&gt; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://lists.freedesktop.org/mailman/listinfo/dbus" target="_blank">http://lists.freedesktop.org/mailman/listinfo/dbus</a><br>&gt;<br><br></div></div></blockquote></div>
<br>