Oh wait, it does work. It took a long time to decode the sample page (more than a couple of minutes) so I thought it's not working.
I think all the images on the page are being decoded in one unyielding loop. If so, I will try to yield the thread after every image, so that progress is visible to the user.
The thread is being yielded, as part of the XHR request to fetch the data as well as an explicit timeout. The images are decoded one by one and the progress is visible to user. False alarm.
Oh wait, it does work. It took a long time to decode the sample page (more than a couple of minutes) so I thought it's not working.
I think all the images on the page are being decoded in one unyielding loop. If so, I will try to yield the thread after every image, so that progress is visible to the user.