import multiprocessing
import signal
import sys
-import time
log = logging.getLogger("suricata-reporter")
log.setLevel(logging.DEBUG)
# Fetch CPU count
cpu_count = multiprocessing.cpu_count()
+ # Create an events queue
+ self.queue = multiprocessing.Queue(1024)
+
# Create as many workers as we have processors
self.workers = [
Worker(reporter=self) for _ in range(cpu_count)
while True:
await asyncio.sleep(1)
+ # Write some data into the queue
+ self.queue.put("ABC", block=False)
+
# Terminate all workers
for worker in self.workers:
worker.terminate()
"""
log.debug("Worker %s launched" % self.pid)
- # Sleep for forever
+ # Loop for forever
while True:
- time.sleep(1)
+ event = self.reporter.queue.get(block=True)
+
+ # Log the event
+ log.debug("Received event in worker %s: %s" % (self.pid, event))
log.debug("Worker %s terminated" % self.pid)