summaryrefslogtreecommitdiff
path: root/misc/cgo/stdio/chain.go
diff options
context:
space:
mode:
Diffstat (limited to 'misc/cgo/stdio/chain.go')
-rw-r--r--misc/cgo/stdio/chain.go43
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")
- }
-}