I’m trying to use parallel Lua for a bit of computing each frame but I’m honestly not too sure what exactly happens when you desynchronize a task. Right now I made sure that the code I want to be parallel solely crunches numbers (no instance access)
It follows this kind of format but I get random weird errors and my debug.profileend/begin calls seem to be out of order because I get spammed with warnings:
runservice.Stepped:Connect(function() -- (1) do a couple of things -- (2) task.desynchronize() -- (3) debug.profilebegin("StepCalc") EXPENSIVE FOR LOOP -- (4) debug.profileend() task.synchronize() -- (5) reflect the computed data on the main thread -- (6) end)
What’s the order of execution here? I added some numbers so they can be referred to as steps 1-6. I understand that parallel execution isn’t linear, I’m just looking for some sort of explanation as to what is happening if I try to run this code every frame. Thanks.