# HG changeset patch # User Tuomo Valkonen # Date 1517055579 0 # Node ID 2a44b96492129fdd411efc0e37420dc6a3679733 # Parent 4f56142e74971c56950a3dac0dc2980fb8b17881 UI refresh fix; added debug messages diff -r 4f56142e7497 -r 2a44b9649212 repository.py --- a/repository.py Fri Jan 26 19:04:04 2018 +0000 +++ b/repository.py Sat Jan 27 12:19:39 2018 +0000 @@ -129,7 +129,8 @@ return self.__passphrase def launch_borg_instance(self, inst): - passphrase=self.__extract_passphrase() + with self._cond: + passphrase=self.__extract_passphrase() inst.launch(passphrase=passphrase) def find_repository(name): diff -r 4f56142e7497 -r 2a44b9649212 scheduler.py --- a/scheduler.py Fri Jan 26 19:04:04 2018 +0000 +++ b/scheduler.py Sat Jan 27 12:19:39 2018 +0000 @@ -73,11 +73,14 @@ def _insert(self, ev): if not self._list: + #logger.debug("Insert first") self._list=ev elif ev0: + logger.debug("Scheduler waiting %d seconds" % (timeout or (-1))) self._cond.wait(timeout) now = time.monotonic() + logger.debug("Scheduler timed out") + while self._list and self._list.when <= now: ev=self._list logger.debug("Scheduler activating %s" % (ev.name or "(unknown)")) @@ -136,5 +143,6 @@ # cond has to be acquired on entry! def wait_until(self, when, cond, name=None): + logger.debug("Scheduling '%s' at %d" % (name, when)) self._wait(ScheduledEvent(when, cond, name)) diff -r 4f56142e7497 -r 2a44b9649212 ui.py --- a/ui.py Fri Jan 26 19:04:04 2018 +0000 +++ b/ui.py Sat Jan 27 12:19:39 2018 +0000 @@ -240,11 +240,13 @@ self.title=title def __status_callback(self, index, status, errorlog=None): - logger.debug('Status callback: %s' % str(status)) - + logger.debug("Tray status callback") with self.lock: self.statuses[index]=status - if self.refresh_timer==None and not self.refresh_timer_time: + # Time the refresh if it has not been timed, or if the timer + # is timing for the "long-term" (refresh_timer_time set) + if not self.refresh_timer or self.refresh_timer_time: + logger.debug("Timing refresh") self.refresh_timer=Timer(refresh_interval, self.refresh_ui) # refresh_timer_time is only set for "long-term timers" self.refresh_timer_time=None