[X2Go-Commits] python-x2go.git - build-baikal (branch) updated: 0.1.1.4-155-gfdfd1f3
X2Go dev team
git-admin at x2go.org
Wed Jan 8 15:26:54 CET 2014
The branch, build-baikal has been updated
via fdfd1f388eaee05a77ef928664ba2f7c6c2b8bb1 (commit)
from 451748c73bc038c127e89e05e8bb30d5814416aa (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 -----------------------------------------------------------------
-----------------------------------------------------------------------
Summary of changes:
x2go/__init__.py | 5 -----
x2go/cleanup.py | 10 ++++++++--
x2go/guardian.py | 10 +---------
x2go/xserver.py | 18 ++++++++++++++----
4 files changed, 23 insertions(+), 20 deletions(-)
The diff of changes is:
diff --git a/x2go/__init__.py b/x2go/__init__.py
index d6f1fc3..cd60a0a 100644
--- a/x2go/__init__.py
+++ b/x2go/__init__.py
@@ -165,11 +165,6 @@ monkey.patch_all()
import utils
-import guardian
-import signal as _signal
-_signal.signal (_signal.SIGTERM, guardian._sigterm_handle )
-_signal.signal (_signal.SIGINT, guardian._sigterm_handle )
-
from client import X2goClient
from backends.profiles import X2goSessionProfiles
from backends.printing import X2goClientPrinting
diff --git a/x2go/cleanup.py b/x2go/cleanup.py
index 82d49d1..bc4f667 100644
--- a/x2go/cleanup.py
+++ b/x2go/cleanup.py
@@ -27,6 +27,7 @@ import paramiko
import threading
# Python X2Go modules
+import guardian
import rforward
from defaults import X2GOCLIENT_OS as _X2GOCLIENT_OS
@@ -85,7 +86,6 @@ def x2go_cleanup(e=None, threads=None):
for t in threads:
if type(t) == xserver.X2goXServer:
t.stop_thread()
- gevent.sleep(1)
del t
# on Windows: stop the PulseAudio daemon that we evoked
@@ -93,9 +93,15 @@ def x2go_cleanup(e=None, threads=None):
for t in threads:
if type(t) == pulseaudio.X2goPulseAudio:
t.stop_thread()
- gevent.sleep(1)
del t
+ for t in threads:
+ if type(t) == guardian.X2goSessionGuardian:
+ t.stop_thread()
+ del t
+
+ gevent.sleep(1)
+
if e is not None:
raise e
diff --git a/x2go/guardian.py b/x2go/guardian.py
index 5b8ea01..817f86f 100644
--- a/x2go/guardian.py
+++ b/x2go/guardian.py
@@ -34,12 +34,6 @@ import copy
from cleanup import x2go_cleanup
import log
-_sigterm_received = False
-def _sigterm_handle(s, f):
- global _sigterm_received
- _sigterm_received = True
- return 0
-
class X2goSessionGuardian(threading.Thread):
"""\
L{X2goSessionGuardian} thread controls X2Go session threads and their sub-threads (like
@@ -103,11 +97,9 @@ class X2goSessionGuardian(threading.Thread):
The handler of this L{X2goSessionGuardian} thread.
"""
- global _sigterm_received
-
seconds = 0
self._keepalive = True
- while not _sigterm_received and self._keepalive:
+ while self._keepalive:
gevent.sleep(1)
seconds += 1
diff --git a/x2go/xserver.py b/x2go/xserver.py
index 217b577..666add1 100644
--- a/x2go/xserver.py
+++ b/x2go/xserver.py
@@ -212,6 +212,7 @@ class X2goXServer(threading.Thread):
self.xserver_name = xserver_name
self.xserver_config = xserver_config
+ self.hProcess = None
if self.xserver_config.has_key('display'):
self.logger('setting DISPLAY environment variable to %s' % self.xserver_config['display'], loglevel=log.loglevel_NOTICE)
os.environ.update({'DISPLAY': str(self.xserver_config['display'])})
@@ -219,6 +220,10 @@ class X2goXServer(threading.Thread):
self.daemon = True
self.start()
+ def __del__(self):
+
+ self._terminate_xserver()
+
def run(self):
"""\
Start this L{X2goXServer} thread. This will launch the configured XServer application.
@@ -241,16 +246,21 @@ class X2goXServer(threading.Thread):
None,
si,
)
- (hProcess, hThread, processId, threadId) = p_info
+ (self.hProcess, hThread, processId, threadId) = p_info
while self._keepalive:
gevent.sleep(1)
- self.logger('terminating running XServer ,,%s\'\'' % self.xserver_name, loglevel=log.loglevel_DEBUG)
- if _X2GOCLIENT_OS == 'Windows':
+ self._terminate_xserver()
+
+ def _terminate_xserver(self):
+
+ self.logger('terminating running XServer ,,%s\'\'' % self.xserver_name, loglevel=log.loglevel_DEBUG)
+
+ if _X2GOCLIENT_OS == 'Windows' and self.hProcess is not None:
try:
- win32process.TerminateProcess(hProcess, 0)
+ win32process.TerminateProcess(self.hProcess, 0)
except win32process.error:
self.logger('XServer ,,%s\'\' could not be terminated.' % self.xserver_name, loglevel=log.loglevel_DEBUG)
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).
More information about the x2go-commits
mailing list