typedef struct TaskManager{ union Data* taskManager; struct Context* context; struct Context** tasks; __code spawn(Impl* taskManager, struct Queue* queue, struct Context* task, __code next(...)); __code spawnTasks(Impl* taskManagerImpl, struct Context** tasks, __code next1(...), struct TaskManager* taskManager); __code shutdown(Impl* taskManagerImpl, __code next(...), struct TaskManager* taskManager, struct Queue* queue); __code incrementTaskCount(Impl* taskManagerImpl, __code next(...)); __code decrementTaskCount(Impl* taskManagerImpl, __code next(...)); __code next(...); __code next1(...); int worker; int cpu; int gpu; int io; int maxCPU; } TaskManager;