#### signal_set::async_wait

Start an asynchronous operation to wait for a signal to be delivered.

    template<
        typename SignalHandler>
    DEDUCED async_wait(
        SignalHandler && handler);

This function may be used to initiate an asynchronous wait against the signal set. It always returns immediately.

For each call to `async_wait()`, the supplied handler will be called exactly once. The handler will be called when:

- One of the registered signals in the signal set occurs; or
- The signal set was cancelled, in which case the handler is passed the error code `asio::error::operation_aborted`.

###### Parameters

handler

  The handler to be called when the signal occurs. Copies will be made of the handler as required. The function signature of the handler must be:

      void handler(
        const asio::error_code& error, // Result of operation.
        int signal_number // Indicates which signal occurred.
      );

  Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `asio::io_context::post()`.