// +build ignore,OMIT

package sample // OMIT
type Stream struct {
	// some fields
	isConnClosed     bool
	connClosedCond   *sync.Cond
	connClosedLocker sync.Mutex
}

func (s *Stream) Wait() error {
	s.connClosedCond.L.Lock()
	for !s.isConnClosed {
		s.connClosedCond.Wait()
	}
	s.connClosedCond.L.Unlock()
	// some code
}
func (s *Stream) Close() {
	// some code
	s.connClosedCond.L.Lock()
	s.isConnClosed = true
	s.connClosedCond.L.Unlock()
	s.connClosedCond.Broadcast()
}
func (s *Stream) IsClosed() bool {
	return s.isConnClosed
}
