code: def on_event(self, evt, is_final):
          
          for msg in XmlHelper.message_iter(evt):
              # Single security element in historical request
              node = msg.GetElement('securityData')
              if node.HasElement('securityError'):
                  secid = XmlHelper.get_child_value(node, 'security')
                  self.security_errors.append(XmlHelper.as_security_error(node.GetElement('securityError'), secid))
              else:
                  self.on_security_data_node(node)
docs: this is invoked from in response to COM PumpWaitingMessages - different thread