This is all just experimenting, so am curious about it...
If I create a roVideoScreen page and run my event loop in a tight Port.GetMessage() loop, I can completely disable* HLS playback in the process, I assume by starving the CPU from being able to do anything else. Changing the GetMessage to a Wait makes everything run perfectly. This all seems perfectly sensible to me, and what I would have expected.
But, when I use the Port.GetMessage() loop, and put in a Sleep(1) call in the loop, my expectation would be that everything runs fine, as sleep does its pause "without wasting CPU cycles" per the docs. But the reality seems to be that the CPU is still starved and HLS playback is still completely disabled.
I would have guessed the script blocking done by Wait and the script blocking done by Sleep were similar, but they're it looks like not.
So my question is this - Is Sleep a CPU cycle eating pause (which seems contrary to the docs)?
* By disabled I mean it results in an "Unspecified or invalid track path/url" failure after a bit (on a perfectly good URL that works fine with Wait).