On 2016-09-03 11:54, Andy Wingo wrote: > On Sat 03 Sep 2016 09:20, Amirouche Boubekki > writes: > >> Using guile 2.1.3, I have a program that: >> >> - reads urls from a text file >> - download the urls using curl command via popen >> - output the result to stdout >> >> Also, it relies on n-for-each-par-map for ice-9 threads. > > Can you reduce it please? For example, remove the use of threads. > Ok. I removed threads and only download the same url over and over again. Here is the error I get on stdout: (23) Failed writing body The program is: (use-modules (ice-9 popen)) ;;; wrapping curl command (define (curl url) (let* ((port (open-input-pipe (format #f "curl -is \"~a\"" url))) (response (read-string port))) (close-pipe port) response)) (define (maybe-curl url) (catch #t (lambda () (display "." (current-error-port)) (write (cons url (curl url)))) (lambda _ '()))) (define urls (map (lambda _ "http://hyperdev.fr/") (iota 1000))) (display "started") (for-each maybe-curl urls)