diff options
Diffstat (limited to 'misc/cgo/gmp/fib.go')
-rw-r--r-- | misc/cgo/gmp/fib.go | 43 |
1 files changed, 0 insertions, 43 deletions
diff --git a/misc/cgo/gmp/fib.go b/misc/cgo/gmp/fib.go deleted file mode 100644 index 3eda39e17..000000000 --- a/misc/cgo/gmp/fib.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. - -// 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 ( - big "gmp" - "runtime" -) - -func fibber(c chan *big.Int, out chan string, n int64) { - // Keep the fibbers in dedicated operating system - // threads, so that this program tests coordination - // between pthreads and not just goroutines. - runtime.LockOSThread() - - i := big.NewInt(n) - if n == 0 { - c <- i - } - for { - j := <-c - out <- j.String() - i.Add(i, j) - c <- i - } -} - -func main() { - c := make(chan *big.Int) - out := make(chan string) - go fibber(c, out, 0) - go fibber(c, out, 1) - for i := 0; i < 200; i++ { - println(<-out) - } -} |