code: async def _end_clean(self):
          
          await self._timeout_watcher.clean()
  
          async def close_and_delete(container_id):
              try:
                  await self._docker.remove_container(container_id)
              except:
                  pass
  
          for container_id  in self._containers_running:
              await close_and_delete(container_id)
          for container_id  in self._student_containers_running:
              await close_and_delete(container_id)
docs: Must be called when the agent is closing