(original) (raw)

Hi all.

This is another question that arises as part of my efforts to run a GUI application, as well as a dbus-service within the same process.
(The other question being at http://mail.python.org/pipermail/python-dev/2012-December/123287.html)


For a recap of the brief history, I have a parent process, that is spawning� a child process via "subprocess".
Currently, the child-process is a GUI process; however, I intend to "behave" it as a dbus-service as well.


Thus,

a)
I subclassed the child-process "main" class with� "dbus.service.Object"; however, I then got the error
"metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases"



b)
I then used composition, wherein another� class, "RemoteListener" deriving� from "dbus.service.Object" was made an attribute of the "main" class. That worked.
However, when� I do


� � � � � � �� dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
�������������� GObject.mainloop.run()

in the "RemoteListener"'s __init__ method, the GUI of the "main" class fails to load (apparently, because the "mainloop.run()" causes the singular, main-thread to go into busy-wait).



c)
I tried option b), but now instantiating "RemoteListener" in a separate thread; however, no improvement :(




Is there a way to run GUI and a dbus-service together? Or is a dbus-service pure "backend" process? :P


I will be grateful for any pointers; if you need me to test anything else, please let me know, I will be more than willing :)




Regards,
Ajay