* morituri/program/cdrdao.py:
Wrap read in an exception handler. * morituri/common/task.py: Debug exceptions more.
This commit is contained in:
@@ -1,3 +1,10 @@
|
||||
2009-09-11 Thomas Vander Stichele <thomas at apestaart dot org>
|
||||
|
||||
* morituri/program/cdrdao.py:
|
||||
Wrap read in an exception handler.
|
||||
* morituri/common/task.py:
|
||||
Debug exceptions more.
|
||||
|
||||
2009-09-11 Thomas Vander Stichele <thomas at apestaart dot org>
|
||||
|
||||
* HACKING:
|
||||
|
||||
@@ -345,8 +345,8 @@ class SyncRunner(TaskRunner, ITaskListener):
|
||||
self.debug('done running task %r', task)
|
||||
if task.exception:
|
||||
# FIXME: this gave a traceback in the logging module
|
||||
#self.debug('raising exception, %r',
|
||||
# log.getExceptionMessage(self._task.exception))
|
||||
self.debug('raising exception, %r',
|
||||
log.getExceptionMessage(task.exception))
|
||||
raise task.exception
|
||||
|
||||
def _startWrap(self, task):
|
||||
@@ -355,6 +355,8 @@ class SyncRunner(TaskRunner, ITaskListener):
|
||||
try:
|
||||
task.start(self)
|
||||
except Exception, e:
|
||||
self.debug('exception during start: %r',
|
||||
log.getExceptionMessage(e))
|
||||
task.exception = e
|
||||
self.stopped(task)
|
||||
|
||||
|
||||
@@ -260,24 +260,31 @@ class CDRDAOTask(task.Task):
|
||||
self.runner.schedule(1.0, self._read, runner)
|
||||
|
||||
def _read(self, runner):
|
||||
ret = self._popen.recv()
|
||||
try:
|
||||
ret = self._popen.recv()
|
||||
|
||||
if ret:
|
||||
self.log("read from stdout: %s", ret)
|
||||
self.readbytesout(ret)
|
||||
if ret:
|
||||
self.log("read from stdout: %s", ret)
|
||||
self.readbytesout(ret)
|
||||
|
||||
ret = self._popen.recv_err()
|
||||
ret = self._popen.recv_err()
|
||||
|
||||
if ret:
|
||||
self.log("read from stderr: %s", ret)
|
||||
self.readbyteserr(ret)
|
||||
if ret:
|
||||
self.log("read from stderr: %s", ret)
|
||||
self.readbyteserr(ret)
|
||||
|
||||
if self._popen.poll() is None:
|
||||
# not finished yet
|
||||
self.runner.schedule(1.0, self._read, runner)
|
||||
return
|
||||
if self._popen.poll() is None:
|
||||
# not finished yet
|
||||
self.runner.schedule(1.0, self._read, runner)
|
||||
return
|
||||
|
||||
self._done()
|
||||
self._done()
|
||||
except Exception, e:
|
||||
self.debug('exception during _read()')
|
||||
self.debug(log.getExceptionMessage(e))
|
||||
import code; code.interact(local=locals())
|
||||
self.exception = e
|
||||
self.stop()
|
||||
|
||||
def _done(self):
|
||||
self.debug('Return code was %d', self._popen.returncode)
|
||||
|
||||
Reference in New Issue
Block a user