Inconsistencies in canvas.show() completion time
I am trying to animate a rectangle that shrinks, indicating how much time a participant has to answer a question. I've built it based on a previous post of mine (link: https://forum.cogsci.nl/discussion/6908/animation-while-waiting-for-keyboard-input#latest) and it works quite well, apart from a single thing:
The way I make the time bar shrink is by drawing a black rectangle once, and "drawing" a white rectangle on top of it whose x-coordinate is slightly more to the left each iteration. See code below of how I do it:
This works fine 90% of the time, but once every while canvas.show() takes a lot longer to complete. To illustrate this I print out the "percentage_timer", which is calculated to know how much the white bar x-coordinate needs to be moved. It represents how many percent of the initial black bar will be covered by the white rectangle.
As you can see from the numbers above, a lot of the time it works correctly and an increase of about 0.3% is used, making the shrinking of the black bar run smoothly. Sometimes however I get the warning that canvas.show() took a long time to complete, resulting in an increase of 4% for "percentage_timer" instead of the usual 0.3%. Note that the time varies wildly (here from 18 to 95 milliseconds, but I have also had 190+ milliseconds). As the while loop is always the same, this should not occur normally.
My question is the following: what could be the cause of this, how can I find the cause, how can I fix it?
I have stopped as many programs as possible that ran on my computer (chrome, spotify, ...), but this did not help.
Thanks in advance for any answer!