А
Size: a a a
А
D
SA
func job(ctx context.Context, f Request, name string, dataChan chan interface{}, errChan chan error) {
resp, err := f(ctx)
select {
case <-errChan:
return
case <- ctx.Done():
return
default:
}
if err != nil {
errChan <- CallError{
Name: name,
Err: err,
}
return
}
dataChan <- resp
}SA
RS
RS
ctxForWoker, cancelForWorker := context.WithCancel(parentCtx)SA
SA
ctxForWoker, cancelForWorker := context.WithCancel(parentCtx)reqCtx, cancel := context.WithTimeout(ctx, timeout)
defer cancel()
SA
RS
RS
RS
SA
RS
RS
RS
x
type Id struct {
id int
}type memoryStorage struct {
data map[Id]User
}type memoryStorage struct {
data map[reflect.TypeOf(Id.id)]User
}D
SA
SA