Roku Developer Program

Developers and content creators—a complete solution for growing an audience directly.
cancel
Showing results for 
Search instead for 
Did you mean: 
sjb64
Level 7

Wait vs Sleep

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).
FlixRaider channel
0 Kudos
2 Replies
EnTerr
Level 8

Re: Wait vs Sleep

What device?
I suspect your mileage may vary, 3xxx vs 4xxx vs 5xxx/27xx.
0 Kudos
sjb64
Level 7

Re: Wait vs Sleep

4200X
FlixRaider channel
0 Kudos