diff -r 8b24e9312f18 -r a8952b79caec Beremiz.py --- a/Beremiz.py Wed Oct 31 12:05:44 2012 +0100 +++ b/Beremiz.py Sat Nov 03 17:00:26 2012 +0100 @@ -211,9 +211,16 @@ if current_time - self.LastRefreshTime > REFRESH_PERIOD and self.RefreshLock.acquire(False): self._should_write() else: - self.LastRefreshTimer = Timer(REFRESH_PERIOD, self._should_write) + self.LastRefreshTimer = Timer(REFRESH_PERIOD, self._timer_expired) self.LastRefreshTimer.start() + def _timer_expired(self): + if self.RefreshLock.acquire(False): + self._should_write() + else: + self.LastRefreshTimer = Timer(REFRESH_PERIOD, self._timer_expired) + self.LastRefreshTimer.start() + def _should_write(self): wx.CallAfter(self._write) if MainThread == currentThread().ident: @@ -225,7 +232,7 @@ def _write(self): if self.output : - self.output.Freeze(); + self.output.Freeze() self.lock.acquire() for s, style in self.stack: if style is None : style=self.black_white @@ -247,7 +254,7 @@ if newtime - self.rising_timer > 1: self.risecall() self.rising_timer = newtime - + def write_warning(self, s): self.write(s,self.red_white)