Hi,
I know this has been discussed before but it looks like in IRC because I
can't find anything via Google.
I'm running into too many file descriptors (again), or rather a file
descriptor leak.
For completeness here is the whole flow:
1.) I loop a list of sites and access pre-downloaded RSS files like this:
(for S *Sites
(let Str (in (pack *Downloads (; S id) ".xml") (till NIL T))
(rssToPages> S Str)) )
2.) rssToPages> looks like this:
(dm rssToPages> @
(let Str (or (next) (exclient~call (; This rssLink) "" 5))
(for A (rss~parseFrom (pipe (prin Str)))
(let Url
(req!> '+Url
'link (a; A 'htmlUrl)
'title (a; A 'title)
'site This
'pubAt (dtp~utcToStamp (a; A 'pubDate)) )
(linkUrl> '+SiteTag Url This) ) ) ) )
The exclient call will never happen in this case as we're passing in the
content in the argument.
rss~parseFrom is here:
https://bitbucket.org/hsarvell/ext/src/tip/rss.l?at=default=file-view-default
So as can be seen there's quite a lot of matching involved (in rss) which I
remember had something to do with open file descriptors, but also pipe and
in calls.
I don't know what is going wrong here because I feel like all open
descriptors should be closed on each conclusion of the site and/or article
loop. But they just seem to be accumulating for some reason.
/Henrik