package transport import ( "ripple/config" "ripple/types" ) type userSenderWorker struct { t *UserTransport ch chan types.UserRequest } func newUserSenderWorker(t *UserTransport) *userSenderWorker { w := &userSenderWorker{ t: t, ch: make(chan types.UserRequest, config.BufferSize), } go w.run() return w } func (w *userSenderWorker) run() { for req := range w.ch { w.t.send(req) } } func (w *userSenderWorker) enqueue(req types.UserRequest) { select { case w.ch <- req: default: } }