Initial commit: Go 1.23 release state
This commit is contained in:
32
test/typeparam/issue48337a.dir/a.go
Normal file
32
test/typeparam/issue48337a.dir/a.go
Normal file
@@ -0,0 +1,32 @@
|
||||
// Copyright 2021 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 a
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"sync"
|
||||
)
|
||||
|
||||
type WrapperWithLock[T any] interface {
|
||||
PrintWithLock()
|
||||
}
|
||||
|
||||
func NewWrapperWithLock[T any](value T) WrapperWithLock[T] {
|
||||
return &wrapperWithLock[T]{
|
||||
Object: value,
|
||||
}
|
||||
}
|
||||
|
||||
type wrapperWithLock[T any] struct {
|
||||
Lock sync.Mutex
|
||||
Object T
|
||||
}
|
||||
|
||||
func (w *wrapperWithLock[T]) PrintWithLock() {
|
||||
w.Lock.Lock()
|
||||
defer w.Lock.Unlock()
|
||||
|
||||
fmt.Println(w.Object)
|
||||
}
|
||||
12
test/typeparam/issue48337a.dir/main.go
Normal file
12
test/typeparam/issue48337a.dir/main.go
Normal file
@@ -0,0 +1,12 @@
|
||||
// Copyright 2021 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 "./a"
|
||||
|
||||
func main() {
|
||||
obj := a.NewWrapperWithLock("this file does import sync")
|
||||
obj.PrintWithLock()
|
||||
}
|
||||
Reference in New Issue
Block a user