System.Concurrency.Channel
non-deterministic behaviour in Chez-Scheme
#1552
Labels
System.Concurrency.Channel
non-deterministic behaviour in Chez-Scheme
#1552
When using a channel to communicate with multiple processes, things sent on the channel can get lost. Small example:
(a more flexible example can be found here)
Steps to Reproduce
Execute
main
in the code above (or from the gist), first with--cg chez
then with--cg racket
.Expected Behavior
No messages are lost and all threads terminate correctly, followed by the main thread terminating.
Observed Behavior
On the Chez-Scheme backend, the behaviour is non-deterministic: Sometimes all the child threads terminate, but more often they don't and so the program never finishes because at least one of the threads in
threadWait
never receives theZ
that was sent.By contrast, on the Racket backend, the program seems to always behave as expected, suggesting this is a problem with the
Channel
implementation insupport/chez/support.ss
.The text was updated successfully, but these errors were encountered: