[Concurrency] UnownedJob.priority and description for TaskPriority

This commit is contained in:
Konrad `ktoso` Malawski
2023-02-09 18:29:12 +09:00
parent f20eaac5be
commit a2783b2e8d
5 changed files with 141 additions and 4 deletions

View File

@@ -555,20 +555,22 @@ const void *AsyncTask::getResumeFunctionForLogging() {
return __ptrauth_swift_runtime_function_entry_strip(result);
}
JobPriority swift::swift_task_currentPriority(AsyncTask *task)
{
JobPriority swift::swift_task_currentPriority(AsyncTask *task) {
// This is racey but this is to be used in an API is inherently racey anyways.
auto oldStatus = task->_private()._status().load(std::memory_order_relaxed);
return oldStatus.getStoredPriority();
}
JobPriority swift::swift_task_basePriority(AsyncTask *task)
{
JobPriority swift::swift_task_basePriority(AsyncTask *task) {
JobPriority pri = task->_private().BasePriority;
SWIFT_TASK_DEBUG_LOG("Task %p has base priority = %zu", task, pri);
return pri;
}
JobPriority swift::swift_concurrency_jobPriority(Job *job) {
return job->getPriority();
}
static inline bool isUnspecified(JobPriority priority) {
return priority == JobPriority::Unspecified;
}