Avoid breaking activity startup by dbus timeout on sigle instance - Fixes #4773
This problem only happen in activities configured with the option -s in the activity.info "exec" field, and the objective is use a single process, even when starting more than one instance. If the process do not reply, start a new process, instead of show a error. Signed-off-by: Gonzalo Odiard <godiard@sugarlabs.org>
This commit is contained in:
parent
43a4611d75
commit
f157b1148e
@ -145,12 +145,18 @@ def main():
|
|||||||
if not name:
|
if not name:
|
||||||
SingleProcess(service_name, activity_constructor)
|
SingleProcess(service_name, activity_constructor)
|
||||||
else:
|
else:
|
||||||
single_process = sessionbus.get_object(service_name, service_path)
|
try:
|
||||||
single_process.create(activity_handle.get_dict(),
|
single_process = sessionbus.get_object(service_name,
|
||||||
|
service_path)
|
||||||
|
single_process.create(
|
||||||
|
activity_handle.get_dict(),
|
||||||
dbus_interface='org.laptop.SingleProcess')
|
dbus_interface='org.laptop.SingleProcess')
|
||||||
|
|
||||||
print 'Created %s in a single process.' % service_name
|
print 'Created %s in a single process.' % service_name
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
|
except (TypeError, dbus.DBusException):
|
||||||
|
print 'Could not communicate with the instance process,' \
|
||||||
|
'launching a new process'
|
||||||
|
|
||||||
if hasattr(module, 'start'):
|
if hasattr(module, 'start'):
|
||||||
module.start()
|
module.start()
|
||||||
|
Loading…
Reference in New Issue
Block a user