package rpc import ( "context" "encoding/json" "log/slog" ) func (s *server) handleResponse(ctx context.Context, data []byte) { var response Response err := json.Unmarshal(data, &response) if err != nil { slog.ErrorContext(ctx, "Cannot Parse Response", "err", err) return } s.requestMutex.Lock() defer s.requestMutex.Unlock() r, ok := s.requests[response.ID] if !ok { slog.ErrorContext(ctx, "Unknown Response", "response", response) return } // remove request from map delete(s.requests, response.ID) // Send Response to Original Caller r <- &response }