@contextmanager<EOL><INDENT>def readout(self, *args, **kwargs):<DEDENT>
timeout = kwargs.pop('<STR_LIT>', <NUM_LIT>)<EOL>self.start_readout(*args, **kwargs)<EOL>try:<EOL><INDENT>yield<EOL><DEDENT>finally:<EOL><INDENT>try:<EOL><INDENT>self.stop_readout(timeout=timeout)<EOL><DEDENT>except Exception:<EOL><INDENT>if self.abort_run.is_set():<EOL><INDENT>with self._readout_lock:<EOL><INDENT>if self.fifo_readout.is_running:<EOL><INDENT>self.fifo_readout.stop(timeout=<NUM_LIT:0.0>)<EOL><DEDENT><DEDENT><DEDENT><DEDENT><DEDENT>
Running the FIFO readout while executing other statements.

        Starting and stopping of the FIFO readout is synchronized between the threads.