[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Wed, 21 Dec 2005 17:30:26 -0500
Semi-replying to my own mail,
On Wed, 2005-12-21 at 17:10 -0500, Andy Wingo wrote:
> From then on out I can't call nsum any more. Perhaps threads assigned to
> futures are not being gc'd properly.
If I run (gc) it's fine. I caught the error at
threads.c:scm_spawn_thread; pthread_create is returning an error. I'm
not really sure what's causing the error, though -- i.e. what is the
resource that is under contention.
Furthermore there is some odd behavior here:
guile> (make-future (lambda () (throw 'foo)))
$4 = #<future #<procedure #f ()>>
uncaught throw to foo: ()
guile> (future-ref $4)
One would expect future-ref to raise the same exception; the thread
finished, the future knows it; there's no reason to hang there. Raising
an exception makes more sense.
Well these are just ordinary bugs I suppose. I'm looking forward to
playing more with guile 1.7.
- more futures,
Andy Wingo <=