def _run(self):
tup = self.read_tuple()<EOL>self._current_tups = [tup]<EOL>if self.is_heartbeat(tup):<EOL><INDENT>self.send_message({"<STR_LIT>": "<STR_LIT>"})<EOL><DEDENT>elif self.is_tick(tup):<EOL><INDENT>self.process_tick(tup)<EOL>if self.auto_ack:<EOL><INDENT>self.ack(tup)<EOL><DEDENT><DEDENT>else:<EOL><INDENT>self.process(tup)<EOL>if self.auto_ack:<EOL><INDENT>self.ack(tup)<EOL><DEDENT><DEDENT>self._current_tups = []<EOL>
The inside of ``run``'s infinite loop.

        Separated out so it can be properly unit tested.