diff options
Diffstat (limited to 'misc/cgo/stdio/fib.go')
-rw-r--r-- | misc/cgo/stdio/fib.go | 47 |
1 files changed, 0 insertions, 47 deletions
diff --git a/misc/cgo/stdio/fib.go b/misc/cgo/stdio/fib.go deleted file mode 100644 index c02e31fd8..000000000 --- a/misc/cgo/stdio/fib.go +++ /dev/null @@ -1,47 +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. - -// Compute Fibonacci numbers with two goroutines -// that pass integers back and forth. No actual -// concurrency, just threads and synchronization -// and foreign code on multiple pthreads. - -package main - -import ( - "runtime" - "stdio" - "strconv" -) - -func fibber(c, out chan int64, i int64) { - // Keep the fibbers in dedicated operating system - // threads, so that this program tests coordination - // between pthreads and not just goroutines. - runtime.LockOSThread() - - if i == 0 { - c <- i - } - for { - j := <-c - stdio.Stdout.WriteString(strconv.Itoa64(j) + "\n") - out <- j - <-out - i += j - c <- i - } -} - -func main() { - c := make(chan int64) - out := make(chan int64) - go fibber(c, out, 0) - go fibber(c, out, 1) - <-out - for i := 0; i < 90; i++ { - out <- 1 - <-out - } -} |