#### spawn (4 of 4 overloads)

Start a new stackful coroutine that executes on a given `io_service`.

    template<
        typename Function>
    void spawn(
        asio::io_service & io_service,
        Function function,
        const boost::coroutines::attributes & attributes = boost::coroutines::attributes());

This function is used to launch a new coroutine.

###### Parameters

io_service

  Identifies the `io_service` that will run the coroutine. The new coroutine is implicitly given its own strand within this `io_service`.

function

  The coroutine function. The function must have the signature:

      void function(yield_context yield);

attributes

  Boost.Coroutine attributes used to customise the coroutine.