(f func())
| 213 | } |
| 214 | |
| 215 | func (p *Player) sync(f func()) bool { |
| 216 | ch := make(chan struct{}) |
| 217 | ff := func() { |
| 218 | f() |
| 219 | close(ch) |
| 220 | } |
| 221 | select { |
| 222 | case p.syncCh <- ff: |
| 223 | <-ch |
| 224 | return true |
| 225 | case <-p.readLoopEndedCh: |
| 226 | return false |
| 227 | } |
| 228 | } |
| 229 | |
| 230 | func (p *Player) eof() bool { |
| 231 | r := false |