def reduce_permits(self, reduction):
    '\n        Shrinks the number of available permits by the indicated reduction. This method differs from acquire in that it\n        does not block waiting for permits to become available.\n\n        :param reduction: (int),  the number of permits to remove.\n        '
    check_not_negative(reduction, 'Reduction cannot be negative!')
    return self._encode_invoke(semaphore_reduce_permits_codec, reduction=reduction)
Shrinks the number of available permits by the indicated reduction. This method differs from acquire in that it
does not block waiting for permits to become available.

:param reduction: (int),  the number of permits to remove.
def reduce_permits(self, reduction):
    '\n        Shrinks the number of available permits by the indicated reduction. This method differs from acquire in that it\n        does not block waiting for permits to become available.\n\n        :param reduction: (int),  the number of permits to remove.\n        '
    check_not_negative(reduction, 'Reduction cannot be negative!')
    return self._encode_invoke(semaphore_reduce_permits_codec, reduction=reduction)