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