code: def _AbandonInactiveProcessingTasks(self):
      
      if self._tasks_processing:
        inactive_time = time.time() - self._TASK_INACTIVE_TIME
        inactive_time = int(inactive_time * definitions.MICROSECONDS_PER_SECOND)
  
        # Abandon all tasks after they're identified so as not to modify the
        # dict while iterating over it.
        tasks_to_abandon = []
        for task_identifier, task in iter(self._tasks_processing.items()):
          if task.last_processing_time < inactive_time:
            logger.debug('Abandoned processing task: {0:s}.'.format(
                task_identifier))
  
            self.SampleTaskStatus(task, 'abandoned_processing')
            tasks_to_abandon.append((task_identifier, task))
  
        for task_identifier, task in tasks_to_abandon:
          self._tasks_abandoned[task_identifier] = task
          del self._tasks_processing[task_identifier]
docs: Marks processing tasks that exceed the inactive time as abandoned.
  
      This method does not lock the manager and should be called by a method
      holding the manager lock.