diff options
Diffstat (limited to 'misc/cgo/stdio')
-rw-r--r-- | misc/cgo/stdio/Makefile | 17 | ||||
-rw-r--r-- | misc/cgo/stdio/chain.go | 43 | ||||
-rw-r--r-- | misc/cgo/stdio/fib.go | 47 | ||||
-rw-r--r-- | misc/cgo/stdio/file.go | 44 | ||||
-rw-r--r-- | misc/cgo/stdio/golden.out | 150 | ||||
-rw-r--r-- | misc/cgo/stdio/hello.go | 11 | ||||
-rwxr-xr-x | misc/cgo/stdio/test.bash | 15 |
7 files changed, 0 insertions, 327 deletions
diff --git a/misc/cgo/stdio/Makefile b/misc/cgo/stdio/Makefile deleted file mode 100644 index 3f7a4c01c..000000000 --- a/misc/cgo/stdio/Makefile +++ /dev/null @@ -1,17 +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. - -include ../../../src/Make.inc - -TARG=stdio -CGOFILES=\ - file.go\ - -CLEANFILES+=hello fib chain run.out - -include ../../../src/Make.pkg - -%: install %.go - $(GC) $*.go - $(LD) -o $@ $*.$O 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") - } -} 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 - } -} diff --git a/misc/cgo/stdio/file.go b/misc/cgo/stdio/file.go deleted file mode 100644 index 021cbf909..000000000 --- a/misc/cgo/stdio/file.go +++ /dev/null @@ -1,44 +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. - -/* -A trivial example of wrapping a C library in Go. -For a more complex example and explanation, -see ../gmp/gmp.go. -*/ - -package stdio - -/* -#include <stdio.h> -#include <stdlib.h> -#include <sys/stat.h> -#include <errno.h> - -char* greeting = "hello, world"; -*/ -import "C" -import "unsafe" - -type File C.FILE - -var Stdout = (*File)(C.stdout) -var Stderr = (*File)(C.stderr) - -// Test reference to library symbol. -// Stdout and stderr are too special to be a reliable test. -var myerr = C.sys_errlist - -func (f *File) WriteString(s string) { - p := C.CString(s) - C.fputs(p, (*C.FILE)(f)) - C.free(unsafe.Pointer(p)) - f.Flush() -} - -func (f *File) Flush() { - C.fflush((*C.FILE)(f)) -} - -var Greeting = C.GoString(C.greeting) diff --git a/misc/cgo/stdio/golden.out b/misc/cgo/stdio/golden.out deleted file mode 100644 index c0e496547..000000000 --- a/misc/cgo/stdio/golden.out +++ /dev/null @@ -1,150 +0,0 @@ -* hello -hello, world -* fib -0 -1 -1 -2 -3 -5 -8 -13 -21 -34 -55 -89 -144 -233 -377 -610 -987 -1597 -2584 -4181 -6765 -10946 -17711 -28657 -46368 -75025 -121393 -196418 -317811 -514229 -832040 -1346269 -2178309 -3524578 -5702887 -9227465 -14930352 -24157817 -39088169 -63245986 -102334155 -165580141 -267914296 -433494437 -701408733 -1134903170 -1836311903 -2971215073 -4807526976 -7778742049 -12586269025 -20365011074 -32951280099 -53316291173 -86267571272 -139583862445 -225851433717 -365435296162 -591286729879 -956722026041 -1548008755920 -2504730781961 -4052739537881 -6557470319842 -10610209857723 -17167680177565 -27777890035288 -44945570212853 -72723460248141 -117669030460994 -190392490709135 -308061521170129 -498454011879264 -806515533049393 -1304969544928657 -2111485077978050 -3416454622906707 -5527939700884757 -8944394323791464 -14472334024676221 -23416728348467685 -37889062373143906 -61305790721611591 -99194853094755497 -160500643816367088 -259695496911122585 -420196140727489673 -679891637638612258 -1100087778366101931 -1779979416004714189 -2880067194370816120 -* chain -0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 diff --git a/misc/cgo/stdio/hello.go b/misc/cgo/stdio/hello.go deleted file mode 100644 index 58fc6d574..000000000 --- a/misc/cgo/stdio/hello.go +++ /dev/null @@ -1,11 +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. - -package main - -import "stdio" - -func main() { - stdio.Stdout.WriteString(stdio.Greeting + "\n") -} diff --git a/misc/cgo/stdio/test.bash b/misc/cgo/stdio/test.bash deleted file mode 100755 index 82e3f7b45..000000000 --- a/misc/cgo/stdio/test.bash +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -# 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. - -set -e -gomake hello fib chain -echo '*' hello >run.out -./hello >>run.out -echo '*' fib >>run.out -./fib >>run.out -echo '*' chain >>run.out -./chain >>run.out -diff run.out golden.out -gomake clean |