Hi Burton,<br><br>Thank you very much for replying.<br><br>Could you perhaps give an outline of your approach and anything you did specifically to get it to work across the threads? For example did you use multiple private connections or one? Did you use a standard MainLoop with the default GMainContext? Did you limit the use of proxies to specific threads etc. etc.<br>
<br>Regards,<br>Ivan<br><br><div class="gmail_quote">On Mon, Aug 23, 2010 at 9:44 PM, Burton Samograd <span dir="ltr">&lt;<a href="mailto:burton@userful.com">burton@userful.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="im">Ivan Barr &lt;<a href="mailto:itb.wrk@gmail.com">itb.wrk@gmail.com</a>&gt; writes:<br>
<br>
&gt; I guess I&#39;m hearing a mixed message. On the one hand it is claimed to<br>
&gt; be thread-safe under certain conditions (even though it makes use of<br>
&gt; non thread safe functions?). On the other hand it appears to be<br>
&gt; strongly not recommended to try to do this.<br>
&gt;<br>
&gt; I guess the safest thing will be to move all the d-bus code to run in<br>
&gt; a single thread. Does it matter if this is not the main thread? Sadly<br>
&gt; this will be considerable re-factoring!!<br>
&gt;<br>
&gt; Perhaps some warning should be put on the d-bus webpage to warn people<br>
&gt; from trying to use the library with threads? It seems from what you<br>
&gt; say it is not just me who has fallen into this trap...<br>
<br>
</div>I&#39;ve managed to get dbus to work well with a threaded application (using<br>
pthreads) but I did run into a lot of trouble when cancelling a thread<br>
that was in the middle of a dbus call.  It seems that some locks can be<br>
held and threads can still be cancelled while holding the lock, causing<br>
the whole system to lock up.  I got around it with a nasty do_not_cancel<br>
variable for the controlling thread, but it took a good day to figure<br>
out what was going wrong.<br>
<br>
The rest of the program seems to work fine and I haven&#39;t had any other<br>
serious problems with recieving in one thread and making calls in<br>
multiple others, but you might run into some more annoying problems than<br>
I did.<br>
<br>
Not sure if I would reccomend dbus threaded programming to the faint of<br>
heart, but it did work for me...<br>
<br>
--<br>
<font color="#888888">Burton Samograd<br>
</font><div><div></div><div class="h5"><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>
</div></div></blockquote></div><br>