A long while back, I created a simple enclosure handler for BottomFeeder. It's pretty basic; it wakes up at night, checks your feeds for enclosures, and downloads them. The basic implementation had some issues though, based on the workings of VisualWorks. At present (this is slated to be fixed for the Winter release), http downloads proceed in memory. For things like your average HTML/XML page, that's fine. For things like podcasts and vlogs though, it can cause problems. Additionally, the initial implementation forked off a thread per download. Combine those two and you get to "all memory used up" pretty darn fast.
I changed it to do linear downloads, and I've also created a small application that just does downloads based on a settings file. So the manager will now look for that separate app, and if it finds it, dish off downloads to it. That way, any over-use of memory doesn't impact the main app, and long downloads won't tie up the normal operation of the tool.
I haven't released any of that yet, because I want to give it a real world test first. Next week, I'm heading to Cincinnati, so I'll get a chance to try it out. If it all works as I expect, I'll push the new stuff up for download.
Technorati Tags:
smalltalk, development, cst