That went too fast, it can't work the way I suggested, below works and is
tested:

(dm rssToPages> @
   (let (Str (or (next) (exclient~call (; This rssLink) "" 5)) Fd (pipe
(prin Str)))
      (for A (rss~parseFrom Fd)
         (let Url
            (req!> '+Url
               'link (a; A 'htmlUrl)
               'title (a; A 'title)
               'site This
               'pubAt (dtp~utcToStamp (a; A 'pubDate)) )
            (linkUrl> '+SiteTag Url This) ) )
      (close Fd)) )




On Tue, May 30, 2017 at 10:20 PM, Henrik Sarvell <hsarv...@gmail.com> wrote:

> Thanks Alex,
>
> I've changed the look to your #1 suggestion now:
>
> (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) ) ) ) ) ) )
>
> Should work right?
>
>
>
>
> On Tue, May 30, 2017 at 10:23 AM, Alexander Burger <a...@software-lab.de>
> wrote:
>
>> Hi Henrik,
>>
>> > I'm running into too many file descriptors (again), or rather a file
>> > descriptor leak.
>> > ...
>> >       (for A (rss~parseFrom (pipe (prin Str)))
>>
>> (pipe (prin Str))) is probably the culprit.
>>
>> 'pipe' has two forms of invocation:
>> 1. (pipe exe . prg) executes 'prg', and cleans up everything (wait for
>> child and
>>    close the open file).
>> 2. (pipe exe) returns a file descriptor, to be used subsequently. So you
>> need to
>>    remember it, and close it when done.
>>
>> ♪♫ Alex
>>
>> --
>> UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
>>
>
>

Reply via email to