Gather list of futures/coros and return single Task ready to schedule.

        :Example:

        Prepare all futures to execution

        .. code-block:: python

            >>> async def do_something():
            ...     return 'something'
            ...
            >>> async def do_something_else():
            ...     return 'something_else'
            ...

        Gather all tasks and then pass to context loop

        .. code-block:: python

            >>> loop = Loop(return_exceptions=True)
            >>> loop.gather(do_something(), do_something_else())
            >>> with loop as l:
            ...     result = l.run_until_complete()
            ...

        :param futures: One or more coroutine or future.
        :type futures: asyncio.Future, asyncio.coroutine
        :return: Futures grouped into single future
        :rtype: asyncio.Task, asyncio.Future

def gather(self, *futures: Union[asyncio.Future, asyncio.coroutine]):
        """Gather list of futures/coros and return single Task ready to schedule.

        :Example:

        Prepare all futures to execution

        .. code-block:: python

            >>> async def do_something():
            ...     return 'something'
            ...
            >>> async def do_something_else():
            ...     return 'something_else'
            ...

        Gather all tasks and then pass to context loop

        .. code-block:: python

            >>> loop = Loop(return_exceptions=True)
            >>> loop.gather(do_something(), do_something_else())
            >>> with loop as l:
            ...     result = l.run_until_complete()
            ...

        :param futures: One or more coroutine or future.
        :type futures: asyncio.Future, asyncio.coroutine
        :return: Futures grouped into single future
        :rtype: asyncio.Task, asyncio.Future
        """
        self.ft_count = len(futures)
        self.futures = asyncio.gather(*futures, loop=self.loop,
                                      return_exceptions=self.return_exceptions)