MarkusK at microsol.ie
Wed Apr 22 03:38:35 PDT 2009
I found a new one recently and tried to track it down. I am not sure whether it is a bug in D-Bus-C++ or (more likely) in libdbus. It looks like a deadlock. Constellation is the following:
- application APP that implements the adaptor for interface A, the proxy for interface B (with methods and signals) and uses class C (standard C++ class)
- B has, let's say, a method Create and a signal Created, i.e. in B's adaptor Create will call this-> Created to emit the signal
- adaptor class of interface A uses method Create from interface B's proxy and method M from class C
- class C implements interface B's proxy (to get notified about changes), i.e. implements callback function Created for interface B
- class C's method M calls another methods of interface B's proxy (not Create)
This constellation makes application APP hang. Because of the "circular" arrangement it may be a deadlock but I could not find out more at this moment in time.
If I disable in adaptor of interface B "this->Created" call everything works fine.
Right now I think of separating the interface of B into two interfaces one with signals and one with methods which may help.
latest dbus-c++ from git
Linux solaris 2.6.27-11-generic #1 SMP Wed Apr 1 20:57:48 UTC 2009 i686 GNU/Linux
This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to which they are addressed.
If you have received this email in error please notify the originator of the message.
This footer also confirms that this email message has been scanned for the presence of computer viruses.
Any views expressed in this message are those of the individual sender, except where the sender specifies and with authority, states them to be the views of Microsol.
If you have received this mail in error you are requested to e-mail us (info at microsol.ie) or by telephoning Microsol on +353 14153700.
Please Visit our website at
This email has been scanned for all viruses.
More information about the dbus