]> git.llucax.com Git - software/pymin.git/blobdiff - pymin/procman.py
Make procman.ProcessInfo.error_count a read-only property.
[software/pymin.git] / pymin / procman.py
index c8a8574ddbc7d0da726fb36e6a1d75e3d744c404..0d67b9b1209fff69b6bf318243a5523b9e73ff4d 100644 (file)
@@ -26,7 +26,7 @@ class ProcessInfo:
         self._dont_run = False
         self._signal = None
         self._process = None
         self._dont_run = False
         self._signal = None
         self._process = None
-        self.error_count = 0
+        self._error_count = 0
     def start(self):
         assert self.process is None
         self.restart()
     def start(self):
         assert self.process is None
         self.restart()
@@ -59,6 +59,9 @@ class ProcessInfo:
     @property
     def process(self):
         return self._process
     @property
     def process(self):
         return self._process
+    @property
+    def error_count(self):
+        return self._error_count
     def __repr__(self):
         pid = None
         if self.process is not None:
     def __repr__(self):
         pid = None
         if self.process is not None:
@@ -156,24 +159,25 @@ class ProcessManager:
                     log.debug(u'ProcessManager.sigchild_handler: '
                                   u'calling %s(%s)', p.callback.__name__, p)
                     p.callback(self, p)
                     log.debug(u'ProcessManager.sigchild_handler: '
                                   u'calling %s(%s)', p.callback.__name__, p)
                     p.callback(self, p)
-                if p._dont_run or not p.persist or p.error_count >= p.max_errors:
+                if (p._dont_run or not p.persist
+                                or p._error_count >= p.max_errors):
                     log.debug(u"ProcessManager.sigchild_handler: can't "
                             u'persist, dont_run=%s, persist=%s, error_cout=%s, '
                             u'max_errors=%s', p._dont_run, p.persist,
                     log.debug(u"ProcessManager.sigchild_handler: can't "
                             u'persist, dont_run=%s, persist=%s, error_cout=%s, '
                             u'max_errors=%s', p._dont_run, p.persist,
-                            p.error_count, p.max_errors)
+                            p._error_count, p.max_errors)
                     del self.namemap[p.name]
                     del self.pidmap[pid]
                     p.clear()
                 else:
                     log.debug(u'ProcessManager.sigchild_handler: persist')
                     if p.process.returncode == 0:
                     del self.namemap[p.name]
                     del self.pidmap[pid]
                     p.clear()
                 else:
                     log.debug(u'ProcessManager.sigchild_handler: persist')
                     if p.process.returncode == 0:
-                        p.error_count = 0
+                        p._error_count = 0
                         log.debug(u'ProcessManager.sigchild_handler: '
                                 u'return OK, resetting error_count')
                     else:
                         log.debug(u'ProcessManager.sigchild_handler: '
                                 u'return OK, resetting error_count')
                     else:
-                        p.error_count += 1
+                        p._error_count += 1
                         log.debug(u'ProcessManager.sigchild_handler: return'
                         log.debug(u'ProcessManager.sigchild_handler: return'
-                                u'not 0, error_count + 1 = %s', p.error_count)
+                                u'not 0, error_count + 1 = %s', p._error_count)
                     del self.pidmap[pid]
                     p.restart()
                     self.pidmap[p.process.pid] = p
                     del self.pidmap[pid]
                     p.restart()
                     self.pidmap[p.process.pid] = p