swift
efa62e7c - [Concurrency] Fix crash from calling fromTaskExecutorPreference after enqueueing job.

Commit
1 year ago
[Concurrency] Fix crash from calling fromTaskExecutorPreference after enqueueing job. After we've enqueued a job, another thread may run it and destroy it. Don't try to get the job's task executor preference when we try to schedule it. Instead, get the task executor preference before enqueueing the job, then use that preference when scheduling if necessary. Since getting the executor preference is potentially somewhat expensive (we need to search the status records for an executor preference record), only do this if the pre-compare-and-swap states look like they'll need it. rdar://136281920
Author
Committer
Parents
Loading