А
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