def cancel(self, message=None):
        """Schedule the fiber to be cancelled in the next iteration of the
        event loop.

        Cancellation works by throwing a :class:`~gruvi.Cancelled` exception
        into the fiber. If *message* is provided, it will be set as the value
        of the exception.
        """
        if not self.is_alive():
            return
        if message is None:
            message = 'cancelled by Fiber.cancel()'
        self._hub.run_callback(self.throw, Cancelled, Cancelled(message))
Schedule the fiber to be cancelled in the next iteration of the
        event loop.

        Cancellation works by throwing a :class:`~gruvi.Cancelled` exception
        into the fiber. If *message* is provided, it will be set as the value
        of the exception.