borgend/backup.py

changeset 106
a7bdc239ef62
parent 104
d33e2d7dbeb1
child 107
f63835e9f29e
equal deleted inserted replaced
105:55043f86c0b5 106:a7bdc239ef62
15 from . import config 15 from . import config
16 from . import repository 16 from . import repository
17 from .dreamtime import MonotonicTime, DreamTime, RealTime 17 from .dreamtime import MonotonicTime, DreamTime, RealTime
18 from .instance import BorgInstance 18 from .instance import BorgInstance
19 from .scheduler import TerminableThread 19 from .scheduler import TerminableThread
20 from .exprotect import protect_noreturn
20 21
21 _logger=logging.getLogger(__name__) 22 _logger=logging.getLogger(__name__)
22 23
23 JOIN_TIMEOUT=10 24 JOIN_TIMEOUT=10
24 25
292 293
293 def __block_when_running(self): 294 def __block_when_running(self):
294 running=self.is_running() 295 running=self.is_running()
295 assert(not running) 296 assert(not running)
296 297
298 @protect_noreturn
297 def __log_listener(self): 299 def __log_listener(self):
298 self.logger.debug('Log listener thread waiting for entries') 300 self.logger.debug('Log listener thread waiting for entries')
299 success=True 301 success=True
300 for msg in iter(self.borg_instance.read_log, None): 302 for msg in iter(self.borg_instance.read_log, None):
301 self.logger.debug(str(msg)) 303 self.logger.debug(str(msg))
383 385
384 self.borg_instance.wait() 386 self.borg_instance.wait()
385 387
386 self.logger.debug('Borg subprocess terminated; terminating log listener thread') 388 self.logger.debug('Borg subprocess terminated; terminating log listener thread')
387 389
390 @protect_noreturn
388 def __result_listener(self): 391 def __result_listener(self):
389 self.logger.debug('Result listener thread waiting for result') 392 self.logger.debug('Result listener thread waiting for result')
390 393
391 res=self.borg_instance.read_result() 394 res=self.borg_instance.read_result()
392 395
543 self.current_operation=None 546 self.current_operation=None
544 self.thread_res=None 547 self.thread_res=None
545 self.thread_log=None 548 self.thread_log=None
546 self.borg_instance=None 549 self.borg_instance=None
547 550
551 @protect_noreturn
548 def __main_thread(self): 552 def __main_thread(self):
549 with self._cond: 553 with self._cond:
550 while not self._terminate: 554 while not self._terminate:
551 try: 555 try:
552 assert(not self.current_operation) 556 assert(not self.current_operation)

mercurial