示例#1
0
 def test_waitforqueues_restore(self):
     """Waitforqueues Queue object is restored to original one."""
     queue_function(self.queues, 0, 0.01)
     time.sleep(0.01)
     expected = sorted(dir(self.queues[0]))
     waitforqueues(self.queues)
     self.assertEqual(sorted(dir(self.queues[0])), expected)
示例#2
0
文件: nitro.py 项目: 5up3rc/nitro-1
    def listen(self):
        self.stop_request = threading.Event()
        pool = ThreadPoolExecutor(max_workers=len(self.vcpus_io))
        self.futures = []
        self.queue_list = []
        self.last_queue = None
        for vcpu_io in self.vcpus_io:
            # create queue for this vcpu
            q = Queue(maxsize=1)
            self.queue_list.append(q)
            # start to listen on this vcpu and report events in the queue
            f = pool.submit(self.listen_vcpu, vcpu_io, q)
            self.futures.append(f)

        # while a thread is still running
        while [f for f in self.futures if f.running()]:
            modified_queues = waitforqueues(self.queue_list)
            for q in modified_queues:
                event = q.get()
                self.last_queue = q
                yield event
                q.task_done()
示例#3
0
 def test_waitforqueues_restore(self):
     """Waitforqueues Queue object is restored to original one."""
     expected = sorted(dir(self.queues[0]))
     launch_thread(queue_function, self.queues, 0, 0)
     waitforqueues(self.queues)
     self.assertEqual(sorted(dir(self.queues[0])), expected)
示例#4
0
 def test_waitforqueues_timeout(self):
     """Waitforqueues returns empty list if timeout."""
     launch_thread(queue_function, self.queues, 0, 0.1)
     self.assertEqual(list(waitforqueues(self.queues, timeout=0.01)), [])
示例#5
0
 def test_waitforqueues_multiple(self):
     """Waitforqueues waits for multiple queues."""
     for index in range(3):
         launch_thread(queue_function, self.queues, index, 0.01)
     time.sleep(0.1)
     self.assertEqual(list(waitforqueues(self.queues)), self.queues)
示例#6
0
 def test_waitforqueues_single(self):
     """Waitforqueues waits for a single queue."""
     launch_thread(queue_function, self.queues, 0, 0.01)
     self.assertEqual(list(waitforqueues(self.queues))[0], self.queues[0])
示例#7
0
 def test_waitforqueues_timeout(self):
     """Waitforqueues returns empty list if timeout."""
     queue_function(self.queues, 0, 0.1)
     self.assertEqual(waitforqueues(self.queues, timeout=0.01), [])
示例#8
0
 def test_waitforqueues_multiple(self):
     """Waitforqueues waits for multiple queues."""
     for index in range(3):
         queue_function(self.queues, index, 0.01)
     time.sleep(0.1)
     self.assertEqual(waitforqueues(self.queues), list(self.queues))
示例#9
0
 def test_waitforqueues_single(self):
     """Waitforqueues waits for a single queue."""
     queue_function(self.queues, 0, 0.01)
     self.assertEqual(waitforqueues(self.queues)[0], self.queues[0])
示例#10
0
 def test_waitforqueues_restore(self):
     """Waitforqueues Queue object is restored to original one."""
     expected = sorted(dir(self.queues[0]))
     launch_thread(queue_function, self.queues, 0, 0)
     waitforqueues(self.queues)
     self.assertEqual(sorted(dir(self.queues[0])), expected)
示例#11
0
 def test_waitforqueues_timeout(self):
     """Waitforqueues returns empty list if timeout."""
     launch_thread(queue_function, self.queues, 0, 0.1)
     self.assertEqual(list(waitforqueues(self.queues, timeout=0.01)), [])
示例#12
0
 def test_waitforqueues_single(self):
     """Waitforqueues waits for a single queue."""
     launch_thread(queue_function, self.queues, 0, 0.01)
     self.assertEqual(list(waitforqueues(self.queues))[0], self.queues[0])