1 #pragma once
2 
3 #include <MTTools.h>
4 #include <MTPlatform.h>
5 #include <MTConcurrentQueueLIFO.h>
6 #include <MTTaskGroup.h>
7 #include <MTTaskDesc.h>
8 
9 namespace MT
10 {
11 	class FiberContext;
12 
13 	namespace internal
14 	{
15 		////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
16 		struct GroupedTask
17 		{
18 			FiberContext* awaitingFiber;
19 			FiberContext* parentFiber;
20 			TaskGroup::Type group;
21 			TaskDesc desc;
22 
23 			GroupedTask()
24 				: awaitingFiber(nullptr)
25 				, parentFiber(nullptr)
26 				, group(TaskGroup::GROUP_UNDEFINED)
27 			{}
28 
29 			GroupedTask(TaskDesc& _desc, TaskGroup::Type _group)
30 				: awaitingFiber(nullptr)
31 				, parentFiber(nullptr)
32 				, group(_group)
33 				, desc(_desc)
34 			{}
35 		};
36 	}
37 }
38