e4c52de24d
Normalize the configured semaphore max before deciding whether the spawn limit is bounded. Fractional values between 0 and 1 now truncate to 0 and fall through to the unbounded path instead of storing 0 and deadlocking the first acquire. Fixes #3305