diff options
Diffstat (limited to 'misc/cgo/stdio/chain.go')
-rw-r--r-- | misc/cgo/stdio/chain.go | 43 |
1 files changed, 0 insertions, 43 deletions
diff --git a/misc/cgo/stdio/chain.go b/misc/cgo/stdio/chain.go deleted file mode 100644 index c188b2dd9..000000000 --- a/misc/cgo/stdio/chain.go +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Pass numbers along a chain of threads. - -package main - -import ( - "runtime" - "stdio" - "strconv" -) - -const N = 10 -const R = 5 - -func link(left chan<- int, right <-chan int) { - // Keep the links in dedicated operating system - // threads, so that this program tests coordination - // between pthreads and not just goroutines. - runtime.LockOSThread() - for { - v := <-right - stdio.Stdout.WriteString(strconv.Itoa(v) + "\n") - left <- 1 + v - } -} - -func main() { - leftmost := make(chan int) - var left chan int - right := leftmost - for i := 0; i < N; i++ { - left, right = right, make(chan int) - go link(left, right) - } - for i := 0; i < R; i++ { - right <- 0 - x := <-leftmost - stdio.Stdout.WriteString(strconv.Itoa(x) + "\n") - } -} |