Email or username:

Password:

Forgot your password?
Andrew Tropin

Fun fact: After calling `join-thread`, you still can get #f from `thread-exited?`

#guile #scheme #lisp

7 comments
graywolf

@abcdw That is... weird. Is that a bug? Or an expected behavior?

graywolf

@abcdw Hm since there was no reaction in IRC, I wanted to send it to mailing list. But I cannot reproduce it:

(use-modules (ice-9 threads))
(let ((th (call-with-new-thread (lambda () 'hi))))
(pk (join-thread th))
(pk (thread-exited? th))
(sleep 1)
(pk (thread-exited? th)))

gives me:

$ guile /tmp/x.scm

;;; (hi)

;;; (#t)

;;; (#t)

I am on guile 3.0.9.

@abcdw Hm since there was no reaction in IRC, I wanted to send it to mailing list. But I cannot reproduce it:

(use-modules (ice-9 threads))
(let ((th (call-with-new-thread (lambda () 'hi))))
(pk (join-thread th))
(pk (thread-exited? th))
(sleep 1)
(pk (thread-exited? th)))

gives me:

$ guile /tmp/x.scm

Andrew Tropin

@graywolf Thank you for trying it! Yes, you are right, this is not a minimal reproducer (I just didn't check after extracting a snippet from project).

This one should reproduce the behavior:
paste.rs/tdGRS

Andrew Tropin

@graywolf Have you reproduce it? (the second example).

graywolf

@abcdw Yes, I managed to reproduce it, and then was thinking if this is guile or fibers bug, and then got distracted and did something else. Sorry about that.

I still have no opinion regarding who's bug it is (ok, I am leaning towards guile itself).

Andrew Tropin

@graywolf Good!

If you decide to report it on mailing list please Cc me, ok?)

Go Up