aboutsummaryrefslogtreecommitdiff
path: root/test/chan
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2008-12-19 03:05:37 -0800
committerRuss Cox <rsc@golang.org>2008-12-19 03:05:37 -0800
commit08ca30bbfad04d3ca1bf7ae75c291b91ecb00aef (patch)
tree183e8cd345f5f895d2cbc36dd8f8be93640303c3 /test/chan
parentd47d888ba663014e6aa8ca043e694f4b2a5898b8 (diff)
downloadgo-08ca30bbfad04d3ca1bf7ae75c291b91ecb00aef.tar.xz
change *map to map; *chan to chan; new(T) to new(*T)
fix bugs left over from *[] to [] conversion. TBR=r OCL=21576 CL=21581
Diffstat (limited to 'test/chan')
-rw-r--r--test/chan/fifo.go2
-rw-r--r--test/chan/goroutines.go4
-rw-r--r--test/chan/nonblock.go32
-rw-r--r--test/chan/powser1.go29
-rw-r--r--test/chan/powser2.go27
-rw-r--r--test/chan/select.go2
-rw-r--r--test/chan/sieve.go6
7 files changed, 48 insertions, 54 deletions
diff --git a/test/chan/fifo.go b/test/chan/fifo.go
index 1152a6d666..eef494dd6f 100644
--- a/test/chan/fifo.go
+++ b/test/chan/fifo.go
@@ -23,7 +23,7 @@ func AsynchFifo() {
}
}
-func Chain(ch *<-chan int, val int, in *<-chan int, out *chan<- int) {
+func Chain(ch <-chan int, val int, in <-chan int, out chan<- int) {
<-in;
if <-ch != val {
panic(val)
diff --git a/test/chan/goroutines.go b/test/chan/goroutines.go
index 3fd80f29b7..afc5ead30f 100644
--- a/test/chan/goroutines.go
+++ b/test/chan/goroutines.go
@@ -14,7 +14,7 @@ import (
"strconv";
)
-func f(left, right *chan int) {
+func f(left, right chan int) {
left <- <-right;
}
@@ -36,6 +36,6 @@ func main() {
go f(left, right);
left = right;
}
- go func(c *chan int) { c <- 1 }(right);
+ go func(c chan int) { c <- 1 }(right);
<-leftmost;
}
diff --git a/test/chan/nonblock.go b/test/chan/nonblock.go
index 5622e8382a..4d36bdbbf2 100644
--- a/test/chan/nonblock.go
+++ b/test/chan/nonblock.go
@@ -13,35 +13,35 @@ func pause() {
for i:=0; i<100; i++ { sys.gosched() }
}
-func i32receiver(c *chan int32) {
+func i32receiver(c chan int32) {
if <-c != 123 { panic("i32 value") }
}
-func i32sender(c *chan int32) {
+func i32sender(c chan int32) {
c <- 234
}
-func i64receiver(c *chan int64) {
+func i64receiver(c chan int64) {
if <-c != 123456 { panic("i64 value") }
}
-func i64sender(c *chan int64) {
+func i64sender(c chan int64) {
c <- 234567
}
-func breceiver(c *chan bool) {
+func breceiver(c chan bool) {
if ! <-c { panic("b value") }
}
-func bsender(c *chan bool) {
+func bsender(c chan bool) {
c <- true
}
-func sreceiver(c *chan string) {
+func sreceiver(c chan string) {
if <-c != "hello" { panic("s value") }
}
-func ssender(c *chan string) {
+func ssender(c chan string) {
c <- "hello again"
}
@@ -57,19 +57,19 @@ func main() {
c64 := new(chan int64, buffer);
cb := new(chan bool, buffer);
cs := new(chan string, buffer);
-
+
i32, ok = <-c32;
if ok { panic("blocked i32sender") }
-
+
i64, ok = <-c64;
if ok { panic("blocked i64sender") }
-
+
b, ok = <-cb;
if ok { panic("blocked bsender") }
-
+
s, ok = <-cs;
if ok { panic("blocked ssender") }
-
+
go i32receiver(c32);
pause();
ok = c32 <- 123;
@@ -79,7 +79,7 @@ func main() {
i32, ok = <-c32;
if !ok { panic("i32sender") }
if i32 != 234 { panic("i32sender value") }
-
+
go i64receiver(c64);
pause();
ok = c64 <- 123456;
@@ -89,7 +89,7 @@ func main() {
i64, ok = <-c64;
if !ok { panic("i64sender") }
if i64 != 234567 { panic("i64sender value") }
-
+
go breceiver(cb);
pause();
ok = cb <- true;
@@ -99,7 +99,7 @@ func main() {
b, ok = <-cb;
if !ok { panic("bsender") }
if !b{ panic("bsender value") }
-
+
go sreceiver(cs);
pause();
ok = cs <- "hello";
diff --git a/test/chan/powser1.go b/test/chan/powser1.go
index 8222de0392..a010f69951 100644
--- a/test/chan/powser1.go
+++ b/test/chan/powser1.go
@@ -30,8 +30,8 @@ func (u *rat) eq(c item) bool {
}
type dch struct {
- req *chan int;
- dat *chan item;
+ req chan int;
+ dat chan item;
nam int;
}
@@ -46,7 +46,7 @@ func Init();
func mkdch() *dch {
c := chnameserial % len(chnames);
chnameserial++;
- d := new(dch);
+ d := new(*dch);
d.req = new(chan int);
d.dat = new(chan item);
d.nam = c;
@@ -54,7 +54,7 @@ func mkdch() *dch {
}
func mkdch2() *dch2 {
- d2 := new(dch2);
+ d2 := new(*dch2);
d2[0] = mkdch();
d2[1] = mkdch();
return d2;
@@ -74,7 +74,7 @@ func mkdch2() *dch2 {
// a signal on the release-wait channel tells the next newer
// generation to begin servicing out[1].
-func dosplit(in *dch, out *dch2, wait *chan int ){
+func dosplit(in *dch, out *dch2, wait chan int ){
var t *dch;
both := false; // do not service both channels
@@ -127,9 +127,9 @@ func get(in *dch) *rat {
func getn(in []*dch, n int) []item {
// BUG n:=len(in);
if n != 2 { panic("bad n in getn") };
- req := new([2] *chan int);
- dat := new([2] *chan item);
- out := new([2] item);
+ req := new(*[2] chan int);
+ dat := new(*[2] chan item);
+ out := new([]item, 2);
var i int;
var it item;
for i=0; i<n; i++ {
@@ -159,11 +159,8 @@ func getn(in []*dch, n int) []item {
// Get one item from each of 2 demand channels
-func get2(in0 *dch, in1 *dch) []item {
- x := new([2] *dch);
- x[0] = in0;
- x[1] = in1;
- return getn(x, 2);
+func get2(in0 *dch, in1 *dch) []item {
+ return getn([]*dch{in0, in1}, 2);
}
func copy(in *dch, out *dch){
@@ -211,7 +208,7 @@ func gcd (u, v int64) int64{
func i2tor(u, v int64) *rat{
g := gcd(u,v);
- r := new(rat);
+ r := new(*rat);
if v > 0 {
r.num = u/g;
r.den = v/g;
@@ -249,7 +246,7 @@ func add(u, v *rat) *rat {
func mul(u, v *rat) *rat{
g1 := gcd(u.num,v.den);
g2 := gcd(u.den,v.num);
- r := new(rat);
+ r := new(*rat);
r.num =(u.num/g1)*(v.num/g2);
r.den = (u.den/g2)*(v.den/g1);
return r;
@@ -649,7 +646,7 @@ func main() {
check(Ones, one, 5, "Ones");
check(Add(Ones, Ones), itor(2), 0, "Add Ones Ones"); // 1 1 1 1 1
check(Add(Ones, Twos), itor(3), 0, "Add Ones Twos"); // 3 3 3 3 3
- a := new([N] *rat);
+ a := new([] *rat, N);
d := Diff(Ones);
// BUG: want array initializer
for i:=0; i < N; i++ {
diff --git a/test/chan/powser2.go b/test/chan/powser2.go
index c72c2fad55..5f2d1dc8cb 100644
--- a/test/chan/powser2.go
+++ b/test/chan/powser2.go
@@ -35,8 +35,8 @@ func (u *rat) eq(c item) bool {
}
type dch struct {
- req *chan int;
- dat *chan item;
+ req chan int;
+ dat chan item;
nam int;
}
@@ -51,7 +51,7 @@ func Init();
func mkdch() *dch {
c := chnameserial % len(chnames);
chnameserial++;
- d := new(dch);
+ d := new(*dch);
d.req = new(chan int);
d.dat = new(chan item);
d.nam = c;
@@ -59,7 +59,7 @@ func mkdch() *dch {
}
func mkdch2() *dch2 {
- d2 := new(dch2);
+ d2 := new(*dch2);
d2[0] = mkdch();
d2[1] = mkdch();
return d2;
@@ -79,7 +79,7 @@ func mkdch2() *dch2 {
// a signal on the release-wait channel tells the next newer
// generation to begin servicing out[1].
-func dosplit(in *dch, out *dch2, wait *chan int ){
+func dosplit(in *dch, out *dch2, wait chan int ){
var t *dch;
both := false; // do not service both channels
@@ -132,9 +132,9 @@ func get(in *dch) *rat {
func getn(in []*dch, n int) []item {
// BUG n:=len(in);
if n != 2 { panic("bad n in getn") };
- req := new([2] *chan int);
- dat := new([2] *chan item);
- out := new([2] item);
+ req := new([] chan int, 2);
+ dat := new([] chan item, 2);
+ out := new([]item, 2);
var i int;
var it item;
for i=0; i<n; i++ {
@@ -165,10 +165,7 @@ func getn(in []*dch, n int) []item {
// Get one item from each of 2 demand channels
func get2(in0 *dch, in1 *dch) []item {
- x := new([2] *dch);
- x[0] = in0;
- x[1] = in1;
- return getn(x, 2);
+ return getn([]*dch{in0, in1}, 2);
}
func copy(in *dch, out *dch){
@@ -216,7 +213,7 @@ func gcd (u, v int64) int64{
func i2tor(u, v int64) *rat{
g := gcd(u,v);
- r := new(rat);
+ r := new(*rat);
if v > 0 {
r.num = u/g;
r.den = v/g;
@@ -254,7 +251,7 @@ func add(u, v *rat) *rat {
func mul(u, v *rat) *rat{
g1 := gcd(u.num,v.den);
g2 := gcd(u.den,v.num);
- r := new(rat);
+ r := new(*rat);
r.num =(u.num/g1)*(v.num/g2);
r.den = (u.den/g2)*(v.den/g1);
return r;
@@ -654,7 +651,7 @@ func main() {
check(Ones, one, 5, "Ones");
check(Add(Ones, Ones), itor(2), 0, "Add Ones Ones"); // 1 1 1 1 1
check(Add(Ones, Twos), itor(3), 0, "Add Ones Twos"); // 3 3 3 3 3
- a := new([N] *rat);
+ a := new([]*rat, N);
d := Diff(Ones);
// BUG: want array initializer
for i:=0; i < N; i++ {
diff --git a/test/chan/select.go b/test/chan/select.go
index 470e151818..3158ee6c29 100644
--- a/test/chan/select.go
+++ b/test/chan/select.go
@@ -14,7 +14,7 @@ func GetValue() uint {
return 1 << shift
}
-func Send(a, b *chan uint) int {
+func Send(a, b chan uint) int {
var i int;
LOOP:
for {
diff --git a/test/chan/sieve.go b/test/chan/sieve.go
index f45373b483..b6bcdb33da 100644
--- a/test/chan/sieve.go
+++ b/test/chan/sieve.go
@@ -10,7 +10,7 @@
package main
// Send the sequence 2, 3, 4, ... to channel 'ch'.
-func Generate(ch *chan<- int) {
+func Generate(ch chan<- int) {
for i := 2; ; i++ {
ch <- i // Send 'i' to channel 'ch'.
}
@@ -18,7 +18,7 @@ func Generate(ch *chan<- int) {
// Copy the values from channel 'in' to channel 'out',
// removing those divisible by 'prime'.
-func Filter(in *<-chan int, out *chan<- int, prime int) {
+func Filter(in <-chan int, out chan<- int, prime int) {
for {
i := <-in; // Receive value of new variable 'i' from 'in'.
if i % prime != 0 {
@@ -28,7 +28,7 @@ func Filter(in *<-chan int, out *chan<- int, prime int) {
}
// The prime sieve: Daisy-chain Filter processes together.
-func Sieve(primes *chan<- int) {
+func Sieve(primes chan<- int) {
ch := new(chan int); // Create a new channel.
go Generate(ch); // Start Generate() as a subprocess.
for {