| /TaskScheduler/SchedulerTests/Tests/ |
| H A D | WaitTests.cpp | 70 MT::TaskScheduler scheduler; in SUITE() local 72 testGroup = scheduler.CreateGroup(); in SUITE() 77 CHECK(scheduler.WaitAll(2000)); in SUITE() 100 MT::TaskScheduler scheduler; in SUITE() local 107 CHECK_EQUAL(false, scheduler.WaitAll(33)); in SUITE() 116 MT::TaskScheduler scheduler; in SUITE() local 118 MT::TaskGroup myGroup = scheduler.CreateGroup(); in SUITE() 177 MT::TaskScheduler scheduler; in SUITE() local 179 MT::TaskGroup mainGroup = scheduler.CreateGroup(); in SUITE() 183 scheduler.RunAsync(mainGroup, &task, 1); in SUITE() [all …]
|
| H A D | SubtasksTests.cpp | 93 MT::TaskScheduler scheduler; in SUITE() local 98 CHECK(scheduler.WaitAll(MT_DEFAULT_WAIT_TIME)); in SUITE() 147 MT::TaskScheduler scheduler; in SUITE() local 149 sourceGroup = scheduler.CreateGroup(); in SUITE() 152 scheduler.RunAsync(sourceGroup, &task, 1); in SUITE() 162 MT::TaskScheduler scheduler; in SUITE() local 164 sourceGroup = scheduler.CreateGroup(); in SUITE() 177 MT::TaskScheduler scheduler; in SUITE() 182 sourceGroup = scheduler.CreateGroup(); in SUITE() 187 scheduler.RunAsync(sourceGroup, &group, 1); in SUITE() [all …]
|
| H A D | StackSizeTests.cpp | 67 MT::TaskScheduler scheduler; in SUITE() local 70 scheduler.RunAsync(MT::TaskGroup::Default(), &tasks[0], MT_ARRAY_SIZE(tasks)); in SUITE() 71 CHECK(scheduler.WaitAll(1000)); in SUITE() 77 MT::TaskScheduler scheduler; in SUITE() local 80 scheduler.RunAsync(MT::TaskGroup::Default(), &tasks[0], MT_ARRAY_SIZE(tasks)); in SUITE() 81 CHECK(scheduler.WaitAll(1000)); in SUITE() 87 MT::TaskScheduler scheduler; in SUITE() local 107 scheduler.RunAsync(MT::TaskGroup::Default(), &taskHandles[0], MT_ARRAY_SIZE(taskHandles)); in SUITE() 108 CHECK(scheduler.WaitAll(1000)); in SUITE()
|
| H A D | GroupTests.cpp | 107 MT::TaskScheduler scheduler; in SUITE() local 109 MT::TaskGroup groupEmpty = scheduler.CreateGroup(); in SUITE() 110 MT::TaskGroup groupAnim = scheduler.CreateGroup(); in SUITE() 113 bool emptyWaitRes0 = scheduler.WaitGroup(groupEmpty, 200); in SUITE() 117 scheduler.RunAsync(groupAnim, &dummyAnim[0], MT_ARRAY_SIZE(dummyAnim)); in SUITE() 119 MT::TaskGroup groupPhysic = scheduler.CreateGroup(); in SUITE() 121 scheduler.RunAsync(groupPhysic, &dummyPhysic[0], MT_ARRAY_SIZE(dummyPhysic)); in SUITE() 123 bool emptyWaitRes1 = scheduler.WaitGroup(groupEmpty, 20); in SUITE() 126 CHECK(scheduler.WaitGroup(groupAnim, waitTime)); in SUITE() 128 bool emptyWaitRes2 = scheduler.WaitGroup(groupEmpty, 200); in SUITE() [all …]
|
| H A D | SimpleTests.cpp | 54 MT::TaskScheduler scheduler; in SUITE() local 57 scheduler.RunAsync(MT::TaskGroup::Default(), &task, 1); in SUITE() 59 CHECK(scheduler.WaitAll(1000)); in SUITE() 81 MT::TaskScheduler scheduler; in SUITE() local 92 scheduler.RunAsync(MT::TaskGroup::Default(), &tasks[0], MT_ARRAY_SIZE(tasks)); in SUITE() 94 int timeout = (TASK_COUNT / scheduler.GetWorkersCount()) * 2000; in SUITE() 96 CHECK(scheduler.WaitGroup(MT::TaskGroup::Default(), timeout)); in SUITE() 175 MT::TaskScheduler scheduler(0, nullptr, nullptr, MT::TaskStealingMode::DISABLED); in SUITE() local 177 MT::TaskScheduler scheduler(0, nullptr, MT::TaskStealingMode::DISABLED); in SUITE() 182 int32 workersCount = scheduler.GetWorkersCount(); in SUITE() [all …]
|
| H A D | CleanupTests.cpp | 45 MT::TaskScheduler scheduler; in SUITE() local 49 scheduler.RunAsync(MT::TaskGroup::Default(), &tasks[0], MT_ARRAY_SIZE(tasks)); in SUITE() 51 CHECK(!scheduler.WaitAll(3)); in SUITE()
|
| H A D | FireAndForget.cpp | 177 MT::TaskScheduler scheduler; in SUITE() local 185 scheduler.RunAsync(MT::TaskGroup::Default(), &tasks[0], MT_ARRAY_SIZE(tasks)); in SUITE() 188 CHECK(scheduler.WaitGroup(MT::TaskGroup::Default(), timeout)); in SUITE() 198 MT::TaskScheduler scheduler; in SUITE() local 215 scheduler.RunAsync(MT::TaskGroup::Default(), &taskHandles[0], MT_ARRAY_SIZE(taskHandles)); in SUITE() 218 CHECK(scheduler.WaitAll(timeout)); in SUITE()
|
| H A D | PriorityTests.cpp | 169 MT::TaskScheduler scheduler(0, nullptr, nullptr, MT::TaskStealingMode::DISABLED); in SUITE() local 171 MT::TaskScheduler scheduler(0, nullptr, MT::TaskStealingMode::DISABLED); in SUITE() local 204 scheduler.RunAsync(MT::TaskGroup::Default(), &taskHandles[0], MT_ARRAY_SIZE(taskHandles)); in SUITE() 205 CHECK(scheduler.WaitAll(2000)); in SUITE() 207 int32 workersCount = scheduler.GetWorkersCount(); in SUITE()
|
| H A D | DxtTests.cpp | 368 void Wait(MT::TaskScheduler & scheduler) in SUITE() 373 bool waitDone = scheduler.WaitAll(33); in SUITE() 483 MT::TaskScheduler scheduler; in SUITE() local 485 int workersCount = (int)scheduler.GetWorkersCount(); in SUITE() 489 scheduler.RunAsync(MT::TaskGroup::Default(), &compressTask, 1); in SUITE() 491 Wait(scheduler); in SUITE() 497 scheduler.RunAsync(MT::TaskGroup::Default(), &decompressTask, 1); in SUITE() 499 Wait(scheduler); in SUITE()
|
| /TaskScheduler/Scheduler/Source/ |
| H A D | MTFiberContext.cpp | 137 TaskScheduler& scheduler = *(threadContext->taskScheduler); in RunAsync() local 141 uint32 bucketCount = MT::Min((uint32)scheduler.GetWorkersCount(), taskHandleCount); in RunAsync() 145 scheduler.RunTasksImpl(buckets, nullptr, false); in RunAsync() 155 TaskScheduler& scheduler = *(threadContext->taskScheduler); in RunSubtasksAndYield() local 159 uint32 bucketCount = MT::Min((uint32)scheduler.GetWorkersCount(), taskHandleCount); in RunSubtasksAndYield()
|
| /TaskScheduler/Scheduler/Include/ |
| H A D | MTFiberContext.inl | 32 TaskScheduler& scheduler = *(threadContext->taskScheduler); local 36 size_t bucketCount = MT::Min((size_t)scheduler.GetWorkersCount(), taskCount); 51 TaskScheduler& scheduler = *(threadContext->taskScheduler); local 55 size_t bucketCount = MT::Min((size_t)scheduler.GetWorkersCount(), taskCount); 59 scheduler.RunTasksImpl(buckets, nullptr, false);
|
| /TaskScheduler/ |
| H A D | README.md | 3 **Cross-platform, fiber-based, multi-threaded task scheduler designed for video games.** 40 // Create scheduler 41 MT::TaskScheduler scheduler; 48 scheduler.RunAsync(MT::TaskGroup::Default(), &tasks[0], MT_ARRAY_SIZE(tasks)); 51 scheduler.WaitAll(1000) 143 Molecule Engine blog - Building a load-balanced task scheduler by Stefan Reinalter 145 http://blog.molecular-matters.com/2012/04/05/building-a-load-balanced-task-scheduler-part-1-basics/ 147 http://blog.molecular-matters.com/2012/04/12/building-a-load-balanced-task-scheduler-part-2-task-mo… 149 http://blog.molecular-matters.com/2012/04/25/building-a-load-balanced-task-scheduler-part-3-parent-… 151 http://blog.molecular-matters.com/2012/07/09/building-a-load-balanced-task-scheduler-part-4-false-s…
|