Browse Source

internal paranoia: detect unbuffered channels passed to the frame writer

Brad Fitzpatrick 11 years ago
parent
commit
be34115420
1 changed files with 5 additions and 1 deletions
  1. 5 1
      server.go

+ 5 - 1
server.go

@@ -290,7 +290,11 @@ func (sc *serverConn) writeFrames() {
 	for wm := range sc.writeFrameCh {
 		err := wm.write(sc, wm.v)
 		if ch := wm.done; ch != nil {
-			ch <- err
+			select {
+			case ch <- err:
+			default:
+				panic(fmt.Sprintf("unbuffered done channel passed in for type %T", wm.v))
+			}
 		}
 		sc.wroteFrameCh <- struct{}{} // tickle frame selection scheduler
 	}