go select8 源码

  • 2022-07-15
  • 浏览 (861)

golang select8 代码

文件路径:/test/chan/select8.go

// run

// Copyright 2019 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.

// Test break statements in a select.
// Gccgo had a bug in handling this.
// Test 1,2,3-case selects, so it covers both the general
// code path and the specialized optimizations for one-
// and two-case selects.

package main

var ch = make(chan int)

func main() {
	go func() {
		for {
			ch <- 5
		}
	}()

	select {
	case <-ch:
		break
		panic("unreachable")
	}

	select {
	default:
		break
		panic("unreachable")
	}

	select {
	case <-ch:
		break
		panic("unreachable")
	default:
		break
		panic("unreachable")
	}

	select {
	case <-ch:
		break
		panic("unreachable")
	case ch <- 10:
		panic("unreachable")
	default:
		break
		panic("unreachable")
	}
}

相关信息

go 源码目录

相关文章

go doubleselect 源码

go fifo 源码

go goroutines 源码

go nonblock 源码

go perm 源码

go powser1 源码

go powser2 源码

go select 源码

go select2 源码

go select3 源码

0  赞