File tree Expand file tree Collapse file tree 1 file changed +3
-5
lines changed
staging/src/k8s.io/apiserver/pkg/endpoints/handlers Expand file tree Collapse file tree 1 file changed +3
-5
lines changed Original file line number Diff line number Diff line change @@ -285,10 +285,12 @@ func (s *WatchServer) HandleWS(ws *websocket.Conn) {
285
285
buf := & bytes.Buffer {}
286
286
streamBuf := & bytes.Buffer {}
287
287
ch := s .Watching .ResultChan ()
288
+
289
+ defer s .Watching .Stop ()
290
+
288
291
for {
289
292
select {
290
293
case <- done :
291
- s .Watching .Stop ()
292
294
return
293
295
case event , ok := <- ch :
294
296
if ! ok {
@@ -317,25 +319,21 @@ func (s *WatchServer) HandleWS(ws *websocket.Conn) {
317
319
if err != nil {
318
320
utilruntime .HandleError (fmt .Errorf ("unable to convert watch object: %v" , err ))
319
321
// client disconnect.
320
- s .Watching .Stop ()
321
322
return
322
323
}
323
324
if err := s .Encoder .Encode (outEvent , streamBuf ); err != nil {
324
325
// encoding error
325
326
utilruntime .HandleError (fmt .Errorf ("unable to encode event: %v" , err ))
326
- s .Watching .Stop ()
327
327
return
328
328
}
329
329
if s .UseTextFraming {
330
330
if err := websocket .Message .Send (ws , streamBuf .String ()); err != nil {
331
331
// Client disconnect.
332
- s .Watching .Stop ()
333
332
return
334
333
}
335
334
} else {
336
335
if err := websocket .Message .Send (ws , streamBuf .Bytes ()); err != nil {
337
336
// Client disconnect.
338
- s .Watching .Stop ()
339
337
return
340
338
}
341
339
}
You can’t perform that action at this time.
0 commit comments