From c74013db1ffc19fb7d5de1cda8c80ed7123f42dd Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Sat, 06 Oct 2007 09:15:36 +0000 Subject: Timeout of 120 seconds for mount to work around jffs2 issues. --- diff --git a/shell/view/Shell.py b/shell/view/Shell.py index d68d86c..26d39a6 100644 --- a/shell/view/Shell.py +++ b/shell/view/Shell.py @@ -24,6 +24,7 @@ import time import gobject import gtk import wnck +import dbus from sugar.activity.activityhandle import ActivityHandle from sugar import activity @@ -38,6 +39,13 @@ from view.keyhandler import KeyHandler from view.home.HomeWindow import HomeWindow from model.shellmodel import ShellModel +# #3903 - this constant can be removed and assumed to be 1 when dbus-python +# 0.82.3 is the only version used +if dbus.version >= (0, 82, 3): + DBUS_PYTHON_TIMEOUT_UNITS_PER_SECOND = 1 +else: + DBUS_PYTHON_TIMEOUT_UNITS_PER_SECOND = 1000 + class Shell(gobject.GObject): def __init__(self, model): gobject.GObject.__init__(self) @@ -69,7 +77,8 @@ class Shell(gobject.GObject): def _start_journal_idle(self): # Mount the datastore in internal flash - datastore.mount(env.get_profile_path('datastore'), []) + datastore.mount(env.get_profile_path('datastore'), [], + timeout=120 * DBUS_PYTHON_TIMEOUT_UNITS_PER_SECOND) # Checking for the bundle existence will also ensure # that the shell service is started up. diff --git a/sugar/datastore/datastore.py b/sugar/datastore/datastore.py index 0a7be50..7c1b57b 100644 --- a/sugar/datastore/datastore.py +++ b/sugar/datastore/datastore.py @@ -291,8 +291,8 @@ def copy(jobject, mount_point): write(new_jobject) -def mount(uri, options): - return dbus_helpers.mount(uri, options) +def mount(uri, options, timeout=-1): + return dbus_helpers.mount(uri, options, timeout=timeout) def unmount(mount_point_id): dbus_helpers.unmount(mount_point_id) diff --git a/sugar/datastore/dbus_helpers.py b/sugar/datastore/dbus_helpers.py index 752b0cc..a5ce9c8 100644 --- a/sugar/datastore/dbus_helpers.py +++ b/sugar/datastore/dbus_helpers.py @@ -82,8 +82,8 @@ def find(query, properties, reply_handler, error_handler): else: return _get_data_store().find(query, properties) -def mount(uri, options): - return _get_data_store().mount(uri, options) +def mount(uri, options, timeout=-1): + return _get_data_store().mount(uri, options, timeout=timeout) def unmount(mount_point_id): _get_data_store().unmount(mount_point_id) -- cgit v0.9.1