<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">Would it be possible to make a cancelable version of DispatchQueue.concurrentPerform, allowing you to abort any yet-to-be-scheduled blocks?</div><div class=""><br class=""></div><div class="">The use-case is for when you’re concurrently performing a job and one of them sets a flag or fails in a way which already defines the result. Further execution wouldn’t affect the outcome, so it would be nice if an operation could flag back to concurrentPerform that it doesn’t have to schedule any more jobs.</div><div class=""><br class=""></div><div class="">For a real-world example, see this concurrent RandomAccessCollection wrapper I was building:&nbsp;<a href="https://gist.github.com/karwa/43ae838809cc68d317003f2885c71572" class="">https://gist.github.com/karwa/43ae838809cc68d317003f2885c71572</a></div><div class=""><br class=""></div><div class="">It would be beneficial if we could stop early in the case of errors (see: _forEach), or if some global flag is set (see: contains).</div><div class=""><br class=""></div><div class="">- Karl</div></body></html>