thread-start! causes medea to leak memory pasted by klm` on Mon Feb 8 13:35:11 2016
(use matchable medea spiffy uri-common intarweb comparse intarweb miscmacros) ;; ==================== debug ;; if you start nrepl and connect to it, you'll get the same results ;; (nrepl's thread-start! causes heap to grow). ;; (thread-start! (lambda () (use nrepl) (nrepl 1234))) ;; ==================== globals (thread-start! (lambda () (print "heap-size should be steady for 10 seconds") (thread-sleep! 10) (thread-start! (lambda () ;; this thread's existance alone makes the heap-size grow, it seems (print "now the heap-size will grow for 10 seconds") (thread-sleep! 10) (print "now it'll be steady again (one of my favorite wtf moments)"))))) (thread-start! (lambda () (let loop () (print "heap-size: " (vector-ref (memory-statistics) 1)) (flush-output) (thread-sleep! 1) (loop)))) ;; (read-string 4 (make-repeating-port "ab")) => "abab" (define (make-repeating-port string) (let* ((document (string->list string)) (buffer document)) (make-input-port (lambda () (let retry () (if (pair? buffer) (begin0 (car buffer) (set! buffer (cdr buffer))) (begin (set! buffer document) (retry))))) error error))) (let () (define input-port (make-repeating-port " { } ")) (let loop ((input input-port)) (receive (json rest) (read-json input) (if (not (parser-input-end? rest)) (loop rest)))))
output added by klm` on Mon Feb 8 13:38:11 2016
$ csi -s arp-boats.scm heap-size should be steady for 10 seconds heap-size: 5187304 heap-size: 5196128 heap-size: 5196848 heap-size: 5196864 heap-size: 5196096 heap-size: 5198416 heap-size: 5198672 heap-size: 5198344 heap-size: 5198400 heap-size: 5196808 now the heap-size will grow for 10 seconds heap-size: 5202552 heap-size: 8497700 heap-size: 8691692 heap-size: 8885636 heap-size: 9075484 heap-size: 9266420 heap-size: 9454356 heap-size: 9640420 heap-size: 9823268 heap-size: 10005364 now it'll be steady again (one of my favorite wtf moments) heap-size: 8358228 heap-size: 8358244 heap-size: 8356100 heap-size: 8358244