File tree 1 file changed +11
-5
lines changed
1 file changed +11
-5
lines changed Original file line number Diff line number Diff line change @@ -99,6 +99,15 @@ type testReadWriter struct {
99
99
serverBuffer bytes.Buffer
100
100
}
101
101
102
+ func (rw * testReadWriter ) maybeBroadcastEmpty () {
103
+ if rw .serverBuffer .Len () == 0 {
104
+ select {
105
+ case rw .readEmptyChan <- struct {}{}:
106
+ default :
107
+ }
108
+ }
109
+ }
110
+
102
111
func (rw * testReadWriter ) Read (buf []byte ) (int , error ) {
103
112
if rw .queuedReadError != nil {
104
113
err := rw .queuedReadError
@@ -112,14 +121,10 @@ func (rw *testReadWriter) Read(buf []byte) (int, error) {
112
121
if err == io .EOF {
113
122
err = nil
114
123
}
124
+ rw .maybeBroadcastEmpty ()
115
125
return s , err
116
126
}
117
127
118
- select {
119
- case rw .readEmptyChan <- struct {}{}:
120
- default :
121
- }
122
-
123
128
// Read from server. We're either waiting for this whole test to
124
129
// finish or for data to come in from the server buffer. We expect
125
130
// only one read to be happening at once.
@@ -130,6 +135,7 @@ func (rw *testReadWriter) Read(buf []byte) (int, error) {
130
135
if err == io .EOF {
131
136
err = nil
132
137
}
138
+ rw .maybeBroadcastEmpty ()
133
139
return s , err
134
140
case <- rw .exiting :
135
141
return 0 , io .EOF
You can’t perform that action at this time.
0 commit comments