Thanks for the reply Rémi.<br><br>I am calling the dbus_g_thread_init_default(); from the main thread before the event loop thread is started.<br><br>I guess I&#39;m hearing a mixed message. On the one hand it is claimed to be thread-safe under certain conditions (even though it makes use of non thread safe functions?). On the other hand it appears to be strongly not recommended to try to do this.<br>
<br>I guess the safest thing will be to move all the d-bus code to run in a single thread. Does it matter if this is not the main thread? Sadly this will be considerable re-factoring!! <br><br>Perhaps some warning should be put on the d-bus webpage to warn people from trying to use the library with threads? It seems from what you say it is not just me who has fallen into this trap...<br>
<br>Ivan<br><br><div class="gmail_quote">2010/8/23 Rémi Denis-Courmont <span dir="ltr">&lt;<a href="mailto:remi@remlab.net">remi@remlab.net</a>&gt;</span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Le lundi 23 août 2010 20:34:37 Ivan Barr, vous avez écrit :<br>
<div class="im">&gt; Thanks Ville,<br>
&gt;<br>
&gt; Is this generally received wisdom or from painful personal experience?<br>
<br>
</div>There are ample documentation on why this really does not work in the past few<br>
months on this same mailing list. libdbus was not designed with this in mind.<br>
<div class="im"><br>
&gt; Are the d-bus libraries designed to be thread safe or is it that it just<br>
&gt; doesn&#39;t work very well?<br>
<br>
</div>Yes and no. libdbus only claims to be thread-safe if you call the thread<br>
initialization function before anything in your process space uses libdbus.<br>
Thread initialization is not thread-safe (so you can&#39;t do it from a library<br>
that cannot reach main()).<br>
<br>
Also libdbus calls a bunch of non-thread-safe functions internally, including<br>
unsetenv() and Xlib.<br>
<font color="#888888"><br>
--<br>
Rémi Denis-Courmont<br>
<a href="http://www.remlab.net/" target="_blank">http://www.remlab.net/</a><br>
<a href="http://fi.linkedin.com/in/remidenis" target="_blank">http://fi.linkedin.com/in/remidenis</a><br>
_______________________________________________<br>
dbus mailing list<br>
<a href="mailto:dbus@lists.freedesktop.org">dbus@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/dbus" target="_blank">http://lists.freedesktop.org/mailman/listinfo/dbus</a><br>
</font></blockquote></div><br>