On Sunday, 15. January 2012 13:18:58 Thiago Macieira wrote: > On Sunday, 15 de January de 2012 11.47.10, Martin Koller wrote: > > * if (!KUniqueApplication::start()) { > > * fprintf(stderr, "myAppName is already running!\n"); > > * return 0; > > * } > > * KUniqueApplication a; > > * return a.exec(); > > > > So one of the very first things the static start() method does is to > > open the session dbus, and this is before a QCoreApplication is available. > > It should open a session bus connection, but not *the* > QDBusConnection::sessionBus() connection. > > I know I designed the code like that. You can't open it before because that > would mean the file descriptor is opened in the wrong process. So where is > the > warninig coming from?
qWarning is in QDBusDefaultConnection ctor > Did I place the warning in the wrong object in QtDBus? > Or is there something *else* creating that connection? no, it's the call to QDBusConnection::sessionBus() which creates the QDBusDefaultConnection object which throws that warning. > Your description still requires the QCoreApplication object to be created > before the fork. It doesn't matter that you're going to close that open and > open a new one after the fork: it's still a bad idea. Some Unix operations do > not survive forks, like creation of threads. If you do that, I'm pretty sure > QProcess will be irreparably broken. Sorry, I don't understand that. Nevertheless, I tried now what you've suggested above, namely to create my own QDBusConnection object to the session bus. This seems to work now, however as I'm new to DBus, I do not fully understand everything. What I've found out is that the KUniqueApplication's DBus call to /MainApplication only works if I create a QDBusConnection object on the session bus only if it uses the same name as the Qt-internal QDBusDefaultConnection object, which is "qt_default_session_bus", even when I would create my QDBusConnection objects in the way that they live as long as the app lives. Does that mean that a registered Object on DBus is linked to the QDBusConnection's name ? I've updated the diff https://git.reviewboard.kde.org/r/103699/diff/2/ -- Best regards/Schöne Grüße Martin A: Because it breaks the logical sequence of discussion Q: Why is top posting bad? () ascii ribbon campaign - against html e-mail /\ www.asciiribbon.org - against proprietary attachments Geschenkideen, Accessoires, Seifen, Kulinarisches: www.bibibest.at
signature.asc
Description: This is a digitally signed message part.