The branch, master has been updated via 301f531414426b31db6b2196502f7c1310bb7eb4 (commit) from fe53e1d162fc80671321f9904ecc47f2f59b8071 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 301f531414426b31db6b2196502f7c1310bb7eb4 Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Date: Tue Apr 24 21:32:02 2012 +0200 Protect session cache from deletion while being processed. ----------------------------------------------------------------------- Summary of changes: debian/changelog | 1 + x2go/cache.py | 6 ++++++ 2 files changed, 7 insertions(+), 0 deletions(-) The diff of changes is: diff --git a/debian/changelog b/debian/changelog index f927ece..2365db9 100644 --- a/debian/changelog +++ b/debian/changelog @@ -119,6 +119,7 @@ python-x2go (0.1.2.0-0~x2go1) UNRELEASED; urgency=low - Make sure path names in X2goPrintActions and X2goMIMEboxActions get transformed to OS-specific path names. - Not using gevent to spawn MIME box default applications. + - Protect session cache from deletion while being processed. * Depend on python-xlib. -- Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Sat, 28 Sep 2012 01:44:21 +0100 diff --git a/x2go/cache.py b/x2go/cache.py index 77cbff2..a67b347 100644 --- a/x2go/cache.py +++ b/x2go/cache.py @@ -25,6 +25,7 @@ __NAME__ = 'x2gocache-pylib' # modules import copy +import gevent # Python X2Go modules import log @@ -62,6 +63,7 @@ class X2goListSessionsCache(object): """ self.x2go_listsessions_cache = {} self.last_listsessions_cache = {} + self.protected = False if logger is None: self.logger = log.X2goLogger(loglevel=loglevel) @@ -79,6 +81,8 @@ class X2goListSessionsCache(object): @type profile_name: C{str} """ + while self.protected: + gevent.sleep() try: del self.x2go_listsessions_cache[profile_name] except KeyError: pass @@ -122,6 +126,7 @@ class X2goListSessionsCache(object): @type update_mounts: C{bool} """ + self.protected = True self.last_listsessions_cache = copy.deepcopy(self.x2go_listsessions_cache) control_session = self.client_instance.client_control_session_of_profile_name(profile_name) if not self.x2go_listsessions_cache.has_key(profile_name): @@ -132,6 +137,7 @@ class X2goListSessionsCache(object): self._update_desktops(profile_name, control_session) if update_mounts: self._update_mounts(profile_name, control_session) + self.protected = False def _update_mounts(self, profile_name, control_session): """\ hooks/post-receive -- python-x2go.git (Python X2Go Client API) This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "python-x2go.git" (Python X2Go Client API).