Sometimes it is necessary to drop undelivered messages. These messages may be stored in different
		caches, for example in a zmq socket queue. With different zmq flags we can tweak zmq sockets and
		contexts no to keep those messages. But inside ZMQStream class there is a queue that can not be
		cleaned other way then the way it does in this method. So yes, it is dirty to access protected
		members, and yes it can be broken at any moment. And yes without correct locking procedure there
		is a possibility of unpredicted behaviour. But still - there is no other way to drop undelivered
		messages

		Discussion of the problem: https://github.com/zeromq/pyzmq/issues/1095

		:return: None

def discard_queue_messages(self):
		""" Sometimes it is necessary to drop undelivered messages. These messages may be stored in different
		caches, for example in a zmq socket queue. With different zmq flags we can tweak zmq sockets and
		contexts no to keep those messages. But inside ZMQStream class there is a queue that can not be
		cleaned other way then the way it does in this method. So yes, it is dirty to access protected
		members, and yes it can be broken at any moment. And yes without correct locking procedure there
		is a possibility of unpredicted behaviour. But still - there is no other way to drop undelivered
		messages

		Discussion of the problem: https://github.com/zeromq/pyzmq/issues/1095

		:return: None
		"""
		zmq_stream_queue = self.handler().stream()._send_queue
		while not zmq_stream_queue.empty():
			try:
				zmq_stream_queue.get(False)
			except queue.Empty:
				continue
			zmq_stream_queue.task_done()