| 324 | |
| 325 | |
| 326 | static void Engine_stepWorker(Engine* that, int threadId) { |
| 327 | Engine::Internal* internal = that->internal; |
| 328 | |
| 329 | // int threadCount = internal->threadCount; |
| 330 | int modulesLen = internal->modules.size(); |
| 331 | |
| 332 | // Build ProcessArgs |
| 333 | Module::ProcessArgs processArgs; |
| 334 | processArgs.sampleRate = internal->sampleRate; |
| 335 | processArgs.sampleTime = internal->sampleTime; |
| 336 | processArgs.frame = internal->frame; |
| 337 | |
| 338 | // Step each module |
| 339 | while (true) { |
| 340 | // Choose next module |
| 341 | // First-come-first serve module-to-thread allocation algorithm |
| 342 | int i = internal->workerModuleIndex++; |
| 343 | if (i >= modulesLen) |
| 344 | break; |
| 345 | |
| 346 | Module* module = internal->modules[i]; |
| 347 | module->doProcess(processArgs); |
| 348 | } |
| 349 | } |
| 350 | |
| 351 | |
| 352 | static void Engine_stepFrameCables(Engine* that) { |
no test coverage detected