private void ProcessEndSubsegmentInLambdaContext()

in sdk/src/Core/AWSXRayRecorder.netcore.cs [345:374]


        private void ProcessEndSubsegmentInLambdaContext(DateTime? timestamp = null)
        {
            var subsegment = PrepEndSubsegmentInLambdaContext();

            if (timestamp == null)
            {
                subsegment.SetEndTimeToNow();
            }
            else
            {
                subsegment.SetEndTime(timestamp.Value);
            }

            // Check emittable
            if (subsegment.IsEmittable())
            {
                // Emit
                Emitter.Send(subsegment.RootSegment);
            }
            else if (StreamingStrategy.ShouldStream(subsegment))
            {
                StreamingStrategy.Stream(subsegment.RootSegment, Emitter);
            }

            if (TraceContext.IsEntityPresent() && TraceContext.GetEntity().GetType() == typeof(FacadeSegment)) //implies FacadeSegment in the Trace Context
            {
                EndFacadeSegment();
                return;
            }
        }