start starts the serialzation/deserialization. It's important this happens after any assignments of the speaker to its owning Tunnel or Manager, since the mutex is copied and that is not threadsafe. nolint: revive
()
| 140 | // the mutex is copied and that is not threadsafe. |
| 141 | // nolint: revive |
| 142 | func (s *speaker[_, _, _]) start() { |
| 143 | s.serdes.start() |
| 144 | go s.recvFromSerdes() |
| 145 | } |
| 146 | |
| 147 | func (s *speaker[S, R, _]) recvFromSerdes() { |
| 148 | defer close(s.recvLoopDone) |
nothing calls this directly
no test coverage detected