To my knowledge the client (and by extension studio) is single threaded. So once the low level language that runs the client goes into the infinite loop, it cannot do anything else (No physics updates, no rendering, etc).
This allows you do do fun things like control the client frame rate (i.e. lag scripts).
local desiredFPS = 8
local waitTime = 1/desiredFPS
local tock = tick()
game:GetService("RunService").RenderStepped:connect(function()
repeat until tick() >= tock+waitTime
tock = tick()
end) |