diff options
Diffstat (limited to 'conn/bind_std_test.go')
-rw-r--r-- | conn/bind_std_test.go | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/conn/bind_std_test.go b/conn/bind_std_test.go new file mode 100644 index 0000000..76afa30 --- /dev/null +++ b/conn/bind_std_test.go @@ -0,0 +1,22 @@ +package conn + +import "testing" + +func TestStdNetBindReceiveFuncAfterClose(t *testing.T) { + bind := NewStdNetBind().(*StdNetBind) + fns, _, err := bind.Open(0) + if err != nil { + t.Fatal(err) + } + bind.Close() + buffs := make([][]byte, 1) + buffs[0] = make([]byte, 1) + sizes := make([]int, 1) + eps := make([]Endpoint, 1) + for _, fn := range fns { + // The ReceiveFuncs must not access conn-related fields on StdNetBind + // unguarded. Close() nils the conn-related fields resulting in a panic + // if they violate the mutex. + fn(buffs, sizes, eps) + } +} |