Auto-Finish is sometimes very slow for the final series of cards
DeusExMachina
REGISTERED
Game: freecell
Game #: 154086720
Browser: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36
JS-Version: 2018-09-06_10:59:16_-0700_ccae3e8a0b87d6f6f7ef92850dbb746ecf9e4ca9
Occasionally, after the final tap, auto-finish works extremely slowly. In this video, 10 seconds elapse between the last tap and auto-finish completing:
I suspect that the cause is either starting the final super move while the prior super move is in progress or an extra tap--one tap for the final super move, a second to start auto-finish, and a third for no good reason
Comments
This is a side-effect of the fix for the other bug you reported. Auto-finish works by spawning 3 "workers" tasks that periodically look for cards they can bring up to the foundations. Every time you click auto-finish it spawns 3 more so you've always been able to auto-finish really quickly by tapping a few times.
Anyway, the bug you found was caused by one of the auto finish workers waking up in the middle of a drag (even a single click is split into 2 parts so it's the same as a drag). Jim's fix is to cancel out the auto-finish worker when this happens. The side effect is that it doesn't reschedule the worker so you end up with one fewer which makes it slower. You can kick off another 3 by clicking auto-finish again.
I'll take your word for it that the fix for the other bug I reported introduced a new case where auto-finish works very slowly. But this behavior is not new. I've been running into this for as long as I've been playing the a super-move-heavy style of freecell. That's 3+ months at least. I wouldn't hazard a guess on whether it's happening more frequently in the few days since Jim fixed the other bug.
Question for you: does tapping a blank spot on the felt run the same code as the Auto-Finish button? I always use the former technique...
The number of auto-finish workers can get reduced for other reasons, too.
Yes, tapping on the blank spot is exactly the same as clicking the auto-finish button.
My fix should only affect the case where there is a click/drag inprogress while auto-play is going on. I don't think this is the case here. @david, I recall seeing this issue long ago and even discussing it with you. I'm sure there is something to fix here, but I don't see it after staring at the code for a while.