def new_entry_span()

in skywalking/trace/context.py [0:0]


    def new_entry_span(self, op: str, carrier: Optional[Carrier] = None, inherit: Optional[Component] = None) -> Span:
        span = self.ignore_check(op, carrier)
        if span is not None:
            return span

        parent = self.peek()
        # start profiling if profile_context is set
        if config.agent_profile_active and self.profile_status is None:
            self.profile_status = profile.profile_task_execution_service.add_profiling(self,
                                                                                       self.segment.segment_id,
                                                                                       op)

        if parent is not None and parent.kind.is_entry and inherit == parent.component:
            # Span's operation name could be overridden, recheck here
            # if the op name now is being profiling, start profile it here
            self.profiling_recheck(parent, op)

            span = parent
            span.op = op

        else:
            span = self.new_span(parent, EntrySpan, op=op)

            if carrier is not None and carrier.is_valid:  # TODO: should this be done irrespective of inheritance?
                span.extract(carrier=carrier)

        return span