Пример #1
0
 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'])
Пример #2
0
 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)
Пример #3
0
 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)