code: def _send_event(self, event):
          
          flush = False
          
          # Handle merging data trace events.
          if self._merge_data_trace_events(event):
              return
          
          if isinstance(event, events.TraceTimestamp):
              for ev in self._pending_events:
                  ev.timestamp = event.timestamp
              flush = True
          else:
              self._pending_events.append(event)
              if isinstance(event, events.TraceOverflow):
                  flush = True
          
          if flush:
              self._flush_events()
docs: ! @brief Process event objects and decide when to send to event sink.
          
          This method handles the logic to associate a timestamp event with the prior other
          event. A list of pending events is built up until either a timestamp or overflow event
          is generated, at which point all pending events are flushed to the event sink. If a
          timestamp is seen, the timestamp of all pending events is set prior to flushing.