From 64ff82ecf98ceb4725f0f51c73e23d1efc2160bc Mon Sep 17 00:00:00 2001 From: Michael Bebenita Date: Tue, 24 Aug 2010 21:06:56 -0700 Subject: Implemented an lock free queue based on this paper http://www.cs.rochester.edu/~scott/papers/1996_PODC_queues.pdf, the "lock free queue" we had before wasn't lock free at all. --- src/test/run-fail/task-comm-14.rs | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 src/test/run-fail/task-comm-14.rs (limited to 'src/test/run-fail') diff --git a/src/test/run-fail/task-comm-14.rs b/src/test/run-fail/task-comm-14.rs new file mode 100644 index 00000000..f5fa27ac --- /dev/null +++ b/src/test/run-fail/task-comm-14.rs @@ -0,0 +1,26 @@ +io fn main() { + let port[int] po = port(); + + // Spawn 10 tasks each sending us back one int. + let int i = 10; + while (i > 0) { + log i; + spawn "child" child(i, chan(po)); + i = i - 1; + } + + i = 10; + let int value = 0; + while (i > 0) { + log i; + value <- po; + i = i - 1; + } + + log "main thread exiting"; +} + +io fn child(int x, chan[int] ch) { + log x; + ch <| x; +} -- cgit v1.2.3