🍒 5.5+ [Concurrency] set queue width on non apple platforms #39766
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description: To avoid thread explosions, i.e. thread growth to the hardcoded number of 255 when tasks are blocked on Linux (and other non apple platforms), and in order to get the same behavior as Swift Concurrency has on Darwin (and back deployment), we must set the global queue width as we set it up for swift concurrency. Without this, when tasks block for even short bursts, we end up with many many threads on Linux systems. The fix sets the width, same as we do on back deployment and gets us consistent behavior across platforms, and no thread explosions.
Risk: Low, affects only non-apple platforms
Review by: @DougGregor @rjmccall @tomerd
Testing: verified manually using example applications;
Original PR: #39764 and the previous one #39742
Radar: rdar://79907041