383 def ShouldRefresh(self): |
383 def ShouldRefresh(self): |
384 if self: |
384 if self: |
385 wx.CallAfter(self._ShouldRefresh) |
385 wx.CallAfter(self._ShouldRefresh) |
386 |
386 |
387 def _ShouldRefresh(self): |
387 def _ShouldRefresh(self): |
388 if DEBUG_REFRESH_LOCK.acquire(False): |
388 if self: |
389 self.AccessLock.acquire() |
389 if DEBUG_REFRESH_LOCK.acquire(False): |
390 self.HasAcquiredLock = True |
390 self.AccessLock.acquire() |
391 self.AccessLock.release() |
391 self.HasAcquiredLock = True |
392 self.RefreshNewData() |
392 self.AccessLock.release() |
393 else: |
393 self.RefreshNewData() |
394 self.TimerAccessLock.acquire() |
394 else: |
395 self.LastRefreshTimer = Timer(REFRESH_PERIOD, self.ShouldRefresh) |
395 self.TimerAccessLock.acquire() |
396 self.LastRefreshTimer.start() |
396 self.LastRefreshTimer = Timer(REFRESH_PERIOD, self.ShouldRefresh) |
397 self.TimerAccessLock.release() |
397 self.LastRefreshTimer.start() |
|
398 self.TimerAccessLock.release() |
398 |
399 |
399 def NewDataAvailable(self, tick, *args, **kwargs): |
400 def NewDataAvailable(self, tick, *args, **kwargs): |
400 self.TimerAccessLock.acquire() |
401 self.TimerAccessLock.acquire() |
401 if self.LastRefreshTimer is not None: |
402 if self.LastRefreshTimer is not None: |
402 self.LastRefreshTimer.cancel() |
403 self.LastRefreshTimer.cancel() |