summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Taylor <bear42@gmail.com>2015-04-11 19:46:26 -0400
committerMike Taylor <bear42@gmail.com>2015-04-11 19:46:26 -0400
commit881d9040c48417bc2e21922fead9e4213b2fab6d (patch)
treecb0ce22e487a7793adcd0d9ed1f21b87025b71e1
parent1e77ea0944f1c7f446267c1c10280dab0059b22b (diff)
parentd261318e1a80b53abd677eb30f7bc5f91bae9dd6 (diff)
downloadslixmpp-881d9040c48417bc2e21922fead9e4213b2fab6d.tar.gz
slixmpp-881d9040c48417bc2e21922fead9e4213b2fab6d.tar.bz2
slixmpp-881d9040c48417bc2e21922fead9e4213b2fab6d.tar.xz
slixmpp-881d9040c48417bc2e21922fead9e4213b2fab6d.zip
Merge pull request #329 from FlySnake/send_queue_overflow
In queues added option to remove first element on addind new if queue is full
-rw-r--r--sleekxmpp/util/__init__.py9
-rw-r--r--sleekxmpp/xmlstream/xmlstream.py2
2 files changed, 8 insertions, 3 deletions
diff --git a/sleekxmpp/util/__init__.py b/sleekxmpp/util/__init__.py
index 05286d33..47a935af 100644
--- a/sleekxmpp/util/__init__.py
+++ b/sleekxmpp/util/__init__.py
@@ -32,12 +32,17 @@ def _gevent_threads_enabled():
if _gevent_threads_enabled():
import gevent.queue as queue
- Queue = queue.JoinableQueue
+ _queue = queue.JoinableQueue
else:
try:
import queue
except ImportError:
import Queue as queue
- Queue = queue.Queue
+ _queue = queue.Queue
+class Queue(_queue):
+ def put(self, item, block=True, timeout=None):
+ if _queue.full(self):
+ _queue.get(self)
+ return _queue.put(self, item, block, timeout)
QueueEmpty = queue.Empty
diff --git a/sleekxmpp/xmlstream/xmlstream.py b/sleekxmpp/xmlstream/xmlstream.py
index 16705c16..0d602b52 100644
--- a/sleekxmpp/xmlstream/xmlstream.py
+++ b/sleekxmpp/xmlstream/xmlstream.py
@@ -291,7 +291,7 @@ class XMLStream(object):
self.event_queue = Queue()
#: A queue of string data to be sent over the stream.
- self.send_queue = Queue()
+ self.send_queue = Queue(maxsize=256)
self.send_queue_lock = threading.Lock()
self.send_lock = threading.RLock()