GSOC Day 59 – Threads and Multiple Downloads
Threads! Locks! Crazy progress bars jumping all over the place! All this and more in today’s episode of: Today in GSOC.
The sky was overcast and foreboding on this Tuesday afternoon, and the tension was so thick you could cut it with an old metaphor. The hours ticked lazily by as I read again over the threading and media library code, searching for something to change, to improve. At last, I saw it: an unnecessarily complicated if statement construction. I knew that I could make some progress if this could get me started.
Heartened by this first foray, I struck onward, making another breakthrough: I created a new class, a thread that would run a single download. The way was not clear yet, however; there were jungles of simultaneous access to cross. With the addition of a few clever locks and the movement of a few callbacks and parameters, I was able to… create a large mess of progress bars jumping back and forth and error messages streaming down the screen. Clearly, I had taken a misstep into the quicksand pit of threads. I quickly fashioned myself a rope of sorts, with a series of currently downloading files so that I would not repeatedly create threads to download the same file, and I pulled myself free of the muck. Finally, the simultaneous downloads could roam freely over the land!
I managed to catch a photograph of their frolicking:
I doubt not, however, that there will be further twists in this plot. Threads do not always live as easily side by side as they first appear to, and I will watch them carefully as I continue my research into checksums and file paths tomorrow.