code: def _create_safe_task(self, coroutine):
          
          task = self._loop.create_task(coroutine)
          self.__asyncio_tasks_running.add(task)
          task.add_done_callback(self.__remove_safe_task)
docs: Calls self._loop.create_task with a safe (== with logged exception) coroutine. When run() ends, these tasks
              are automatically cancelled