mirror of https://github.com/k3s-io/k3s
47 lines
822 B
Plaintext
47 lines
822 B
Plaintext
// Copyright 2012 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 case for issue 3106: Better synchronization of
|
|
// parser after certain syntax errors.
|
|
|
|
package main
|
|
|
|
func f() {
|
|
var m Mutex
|
|
c := MakeCond(&m)
|
|
percent := 0
|
|
const step = 10
|
|
for i := 0; i < 5; i++ {
|
|
go func() {
|
|
for {
|
|
// Emulates some useful work.
|
|
time.Sleep(1e8)
|
|
m.Lock()
|
|
defer
|
|
if /* ERROR "expected ';', found 'if'" */ percent == 100 {
|
|
m.Unlock()
|
|
break
|
|
}
|
|
percent++
|
|
if percent % step == 0 {
|
|
//c.Signal()
|
|
}
|
|
m.Unlock()
|
|
}
|
|
}()
|
|
}
|
|
for {
|
|
m.Lock()
|
|
if percent == 0 || percent % step != 0 {
|
|
c.Wait()
|
|
}
|
|
fmt.Print(",")
|
|
if percent == 100 {
|
|
m.Unlock()
|
|
break
|
|
}
|
|
m.Unlock()
|
|
}
|
|
}
|