X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/invirt-web.git/blobdiff_plain/81888efea1a149512cb2de3a29320089a3316b2b..b6de14922fb1565d0d1f4a44b1dacc3a95e265a9:/code/ajaxterm.py diff --git a/code/ajaxterm.py b/code/ajaxterm.py index 2b4ff44..8436914 100644 --- a/code/ajaxterm.py +++ b/code/ajaxterm.py @@ -320,7 +320,7 @@ class Terminal: return r def dumplatin1(self): return self.dump().translate(self.trl1) - def dumphtml(self,color=1): + def dumphtml(self,color=1,force=False): h=self.height w=self.width r="" @@ -343,7 +343,7 @@ class Terminal: if i%w==w-1: span+='\n' r='
%s
'%r - if self.last_html==r: + if self.last_html==r and not force: return '' else: self.last_html=r @@ -368,10 +368,10 @@ class SynchronizedMethod: class Multiplex: def __init__(self): - signal.signal(signal.SIGCHLD, signal.SIG_IGN) self.proc={} self.lock=threading.RLock() self.thread=threading.Thread(target=self.loop) + self.thread.daemon=True self.alive=1 # synchronize methods for name in ['create','fds','proc_read','proc_write','dump','die','run']: @@ -436,9 +436,9 @@ class Multiplex: os.write(fd,s) except (IOError,OSError): self.proc_kill(fd) - def dump(self,fd,color=1): + def dump(self,fd,color=1,force=False): try: - return self.proc[fd]['term'].dumphtml(color) + return self.proc[fd]['term'].dumphtml(color, force) except KeyError: return False def loop(self):