Handle losing contact with the daemon gracefully.

This commit is contained in:
Andrew Resch 2008-01-19 23:33:09 +00:00
parent 42b5f6872c
commit 0e5c81c2e0

View File

@ -155,16 +155,21 @@ class CoreProxy(gobject.GObject):
return True return True
if self._multi is not None: if self._multi is not None:
for i, ret in enumerate(self._multi()): try:
try: for i, ret in enumerate(self._multi()):
if block == False: try:
gobject.idle_add(self._callbacks[i], ret) if block == False:
else: gobject.idle_add(self._callbacks[i], ret)
self._callbacks[i](ret) else:
except: self._callbacks[i](ret)
pass except:
pass
self._callbacks = [] except socket.error, e:
log.warning("Could not contact daemon: %s", e)
self.set_core_uri(None)
finally:
self._callbacks = []
self._multi = xmlrpclib.MultiCall(self._core) self._multi = xmlrpclib.MultiCall(self._core)
return True return True