Hi all,
(this is actually Joerg using Peter's machine).
Am Montag, den 04.08.2008, 21:20 -0500 schrieb Jim Ursetto:
> Ran okay here. Do you have more stats about your environment, chicken
> version, a less complicated program that can reproduce the problem,
> etc.?
The environment, where the case came up: my Laptop: 64 Bit Intel-HW, 32
Bit Ubuntu, chicken from svn (up to date yesterday) build with
DEBUGBUILD=1.
Results: Segfault and "heap full".
Here: Debian stable, 64 Bit. Results: Success and "heap full".
Virtualbox (32 bit) with chicken-livecd-0.3.iso (downloaded is from 30th
Apr).
Results: Sucess, "heap full", Segfault
Attached a further simplified test case. It becomes clear to me that
"thread-terminate!" appears to be the problematic call. On the livecd,
we just saw about 50% Segfault and 50% success for that version of
"ttm". BUT: as soon as I coment out the call to "thread-terminate!" it
runs without problems, even in a loop.
best regards
/Jörg
(declare (uses srfi-18))
(define (logerr . args)
(apply format (current-error-port) args)
(flush-output (current-error-port))
(format (current-error-port) "let's do some garbage\n")
(flush-output (current-error-port))
(let ((s ""))
(do ((i 0 (+ i 1)))
((eqv? i 20000) #t)
(set! s (string-append s (number->string i)))))
(format (current-error-port) "enough garbage\n")
(flush-output (current-error-port)))
(define (with-timeout timeout thunk)
(let ((thread (thread-start! (make-thread thunk
;; (string-append (thread-name (current-thread)) "-worker")
))))
(thread-sleep! timeout)
(thread-terminate! thread)))
(define (test2)
(handle-exceptions
ex
(begin (logerr "error ~a\n" ex) #f)
(with-timeout 3 (lambda () (do () (#f) #t)))))
(print "test")
(test2)
(logerr "done\n")
(exit 0)
_______________________________________________
Chicken-users mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/chicken-users