def test_range_over_channels(self): # https://gobyexample.com/range-over-channels queue = goless.chan(2) queue.send('one') queue.send('two') queue.close() elements = [elem for elem in queue] self.assertEqual(elements, ['one', 'two'])
def _mq_read(self,queue,pipe): try: data = '' stopFlag = False while not stopFlag: r,_,_ = select.select([queue.mqd,pipe],[],[]) for f in r: if f == pipe: stopFlag = True break else: data = '%s%s' % (data,queue.receive()[0]) while data: try: messageType,message,data = protocol.unpack_message(data) self._lock_mgt(queue,messageType,message) except ValueError: pass except: sys.excepthook(*sys.exc_info()) finally: queue.close() os.close(pipe)
def _mq_read(self, queue, pipe): try: data = '' stopFlag = False while not stopFlag: r, _, _ = select.select([queue.mqd, pipe], [], []) for f in r: if f == pipe: stopFlag = True break else: data = '%s%s' % (data, queue.receive()[0]) while data: try: messageType, message, data = protocol.unpack_message( data) self._lock_mgt(queue, messageType, message) except ValueError: pass except: sys.excepthook(*sys.exc_info()) finally: queue.close() os.close(pipe)