func()

in plugins/grpc/client_recvmsg_interceptor.go [55:76]


func (h *ClientRecvMsgInterceptor) AfterInvoke(invocation operator.Invocation, result ...interface{}) error {
	if invocation.GetContext() == nil {
		return nil
	}
	span := invocation.GetContext().(tracing.Span)
	err, ok := result[0].(error)
	if ok && err != nil && err != io.EOF {
		span.Error(err.Error())
	}
	if err == io.EOF {
		cs := invocation.CallerInstance().(*nativeclientStream)
		method := cs.callHdr.Method
		span.SetOperationName(formatOperationName(method, "/Client/Response/CloseRecv"))
	}
	span.End()
	csEnhanced, ok := invocation.CallerInstance().(operator.EnhancedInstance)
	if ok && csEnhanced.GetSkyWalkingDynamicField() != nil {
		contextdata := csEnhanced.GetSkyWalkingDynamicField().(*contextData)
		tracing.ContinueContext(contextdata.endSnapShot)
	}
	return nil
}