File tree 2 files changed +8
-3
lines changed
stdlib/public/Concurrency 2 files changed +8
-3
lines changed Original file line number Diff line number Diff line change @@ -316,9 +316,10 @@ class AsyncTask : public Job {
316
316
#endif
317
317
318
318
// Private storage is currently 6 pointers, 16 bytes of non-pointer data,
319
- // the ActiveTaskStatus, and a RecursiveMutex.
319
+ // 8 bytes of padding, the ActiveTaskStatus, and a RecursiveMutex.
320
320
static constexpr size_t PrivateStorageSize =
321
- 6 * sizeof (void *) + 16 + ActiveTaskStatusSize + sizeof (RecursiveMutex);
321
+ 6 * sizeof (void *) + 16 + 8 + ActiveTaskStatusSize
322
+ + sizeof (RecursiveMutex);
322
323
323
324
char Storage[PrivateStorageSize];
324
325
Original file line number Diff line number Diff line change @@ -766,16 +766,20 @@ struct AsyncTask::PrivateStorage {
766
766
alignas (ActiveTaskStatus) char StatusStorage[sizeof (ActiveTaskStatus)];
767
767
768
768
// / The allocator for the task stack.
769
- // / Currently 2 words + 8 bytes.
769
+ // / Currently 2 words + 4 bytes.
770
770
TaskAllocator Allocator;
771
771
772
+ // Four bytes of padding here (on 64-bit)
773
+
772
774
// / Storage for task-local values.
773
775
// / Currently one word.
774
776
TaskLocal::Storage Local;
775
777
776
778
// / The top 32 bits of the task ID. The bottom 32 bits are in Job::Id.
777
779
uint32_t Id;
778
780
781
+ // Another four bytes of padding here too (on 64-bit)
782
+
779
783
// / Base priority of Task - set only at creation time of task.
780
784
// / Current max priority of task is ActiveTaskStatus.
781
785
// /
You can’t perform that action at this time.
0 commit comments