From 7dfae55d43211e21028886587289434df035aac4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Piotr=20Ma=C5=9Blanka?= <pmaslanka@smok.co>
Date: Thu, 28 Oct 2021 14:42:47 +0200
Subject: [PATCH] v2.18.6

---
 CHANGELOG.md                         | 2 ++
 satella/__init__.py                  | 2 +-
 satella/coding/concurrent/monitor.py | 3 ---
 satella/coding/misc.py               | 6 +++++-
 4 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index b794b724..288a5976 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1 +1,3 @@
 # v2.18.6
+
+* queue_get will be safe against multiple consumers
diff --git a/satella/__init__.py b/satella/__init__.py
index c1ce47d2..7fbf3a1c 100644
--- a/satella/__init__.py
+++ b/satella/__init__.py
@@ -1 +1 @@
-__version__ = '2.18.6a1'
+__version__ = '2.18.6'
diff --git a/satella/coding/concurrent/monitor.py b/satella/coding/concurrent/monitor.py
index 85fcafad..2a651539 100644
--- a/satella/coding/concurrent/monitor.py
+++ b/satella/coding/concurrent/monitor.py
@@ -5,9 +5,6 @@ import typing as tp
 
 from ..decorators.decorators import wraps
 
-__all__ = [
-    'Monitor', 'RMonitor', 'MonitorDict', 'MonitorList'
-]
 
 from ..typing import K, V, T
 
diff --git a/satella/coding/misc.py b/satella/coding/misc.py
index 7377f33c..5bb0092d 100644
--- a/satella/coding/misc.py
+++ b/satella/coding/misc.py
@@ -5,6 +5,7 @@ from inspect import Parameter, signature
 from queue import Queue
 
 from satella.coding.recast_exceptions import rethrow_as
+from queue import Empty
 
 
 def enum_value(value):
@@ -122,7 +123,10 @@ def queue_iterator(queue: Queue) -> tp.Iterator:
     >>>     yield queue.get()
     """
     while queue.qsize() > 0:
-        yield queue.get()
+        try:
+            yield queue.get(block=False)
+        except Empty:
+            return
 
 
 def update_if_not_none(dictionary: tp.Dict, key: tp.Hashable, value) -> tp.Dict:
-- 
GitLab