fix leak in `racket/draw' instantiation
original commit: 75dd61ebc36ecca41d591c81c290b0e776cef36b
This commit is contained in:
parent
fcd3a38c65
commit
db9ae63828
19
collects/tests/gracket/draw-mem.rkt
Normal file
19
collects/tests/gracket/draw-mem.rkt
Normal file
|
@ -0,0 +1,19 @@
|
|||
#lang racket
|
||||
|
||||
;; Check for a leak via multiple `racket/draw' instantiations.
|
||||
|
||||
(define-values (incs m)
|
||||
(for/fold ([incs 0] [prev-mem 0]) ([i 10])
|
||||
(parameterize ([current-namespace (make-base-namespace)])
|
||||
(dynamic-require 'racket/draw #f))
|
||||
(collect-garbage)
|
||||
(sync (system-idle-evt))
|
||||
(collect-garbage)
|
||||
(let ([m (current-memory-use)])
|
||||
(if (m . > . (+ prev-mem (* 100 1024)))
|
||||
(values (add1 incs) m)
|
||||
(values incs m)))))
|
||||
|
||||
(unless (incs . < . 5)
|
||||
(error "multiple `racket/draw' instantiations seem to accumulate memory"))
|
||||
|
Loading…
Reference in New Issue
Block a user