diff options
author | Mike Taylor <bear42@gmail.com> | 2015-04-11 19:46:26 -0400 |
---|---|---|
committer | Mike Taylor <bear42@gmail.com> | 2015-04-11 19:46:26 -0400 |
commit | 881d9040c48417bc2e21922fead9e4213b2fab6d (patch) | |
tree | cb0ce22e487a7793adcd0d9ed1f21b87025b71e1 | |
parent | 1e77ea0944f1c7f446267c1c10280dab0059b22b (diff) | |
parent | d261318e1a80b53abd677eb30f7bc5f91bae9dd6 (diff) | |
download | slixmpp-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__.py | 9 | ||||
-rw-r--r-- | sleekxmpp/xmlstream/xmlstream.py | 2 |
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() |