From 4df50e4b7bdadffe28cbb0f3b9abc9210cab18dc Mon Sep 17 00:00:00 2001 From: aouinizied Date: Tue, 26 Nov 2019 16:50:20 +0100 Subject: [PATCH] Fix multiple runs case. --- nfstream/streamer.py | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/nfstream/streamer.py b/nfstream/streamer.py index f7a6c95..fee6427 100644 --- a/nfstream/streamer.py +++ b/nfstream/streamer.py @@ -52,20 +52,23 @@ class NFStreamer(object): self._stopped = False def __iter__(self): - self._producer.start() - tm.sleep(0.1) - self._consumer.connect('ipc:///tmp/nfstream.pipe') - while True: - try: - flow = self._consumer.recv_pyobj() - if flow is None: - break - else: - yield flow - except KeyboardInterrupt: - if not self._stopped: - self._stopped = True - self._cache.stopped = True + try: + self._producer.start() + tm.sleep(0.1) + self._consumer.connect('ipc:///tmp/nfstream.pipe') + while True: + try: + flow = self._consumer.recv_pyobj() + if flow is None: + break + else: + yield flow + except KeyboardInterrupt: + if not self._stopped: + self._stopped = True + self._cache.stopped = True + except RuntimeError: + return None